我想逐步返回 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);
});
我不认为上述是可能的,因为根据Google文档
App Engine 不支持流式响应,其中数据在处理请求时以增量块的形式发送到客户端。代码中的所有数据均按上述方式收集,并作为单个 HTTP 响应发送。