根据 Http 1.1 规定,如果 response headers 中 Transfer-Encoding 为 trunked ,则表示该页面为分块返回,客户端应该逐步加载页面信息
但是据我测试,不同浏览器似乎在实现上有不同的差异
如
chrome(62 stable)
必须传输超过 1024 个字节 才会开始渲染
IE (11)
必须传输超过 4096 个字节 才会开始渲染
例: (Node.js)
let http = require("http");
http.createServer(async(req, res) => {
setInterval(() => {
res.write("0");
}, 1000);
}).listen(80);
Chrome 会在 1024 秒后首先显示 1024 个 0,然后每秒增加一个 0
IE 则会在 4096 秒后首先显示 4096 个 0,然后每秒增加一个 0
在这之前网页会一直处于 pending 状态
网友评论