使用nodejs/express在AppEngine中逐步返回html

问题描述 投票:0回答:1

我想逐步返回 html,这样浏览器就可以加载依赖项并开始在首屏上方渲染,同时服务器仍在为首屏生成 html。生成整个页面需要几秒钟的时间,因此更快地开始看到结果将是更好的用户体验。

在nodejs中,我使用res.writeHead、几个res.write,然后是res.end。这在本地运行时效果很好,但是当部署到应用程序引擎(标准)时,浏览器似乎在整个页面准备就绪之前无法获取任何内容。当托管在应用程序引擎上时,有没有办法提前返回页面顶部?

示例代码

app.get('/testprogressiverendering', function (req, res) {
    res.writeHead(200, {
        'Content-Type': 'text/html',
        'Cache-control': 'max-age=0, no-cache'
    });
    var counter = 0;
    var i = setInterval(function () {
        if (counter++ < 3) {
            res.write(`<h2>${counter}</h2>\n`);
        }
        else {
            clearInterval(i);
            res.end('<h2>Done</h2>');
        }
    }, 1000);
});
node.js google-app-engine
1个回答
0
投票

我不认为上述是可能的,因为根据Google文档

App Engine 不支持流式响应,其中数据在处理请求时以增量块的形式发送到客户端。代码中的所有数据均按上述方式收集,并作为单个 HTTP 响应发送。

© www.soinside.com 2019 - 2024. All rights reserved.