我有两个端点/huge_html
和/huge_html2
,它们服务于相同的〜10MB HTML文档。 (请注意:它是不完整的HTML,只是一个带有成千上万个<div>
标签的<p>
)
我想测试预加载是否是一种有效的HTML加载方法,我知道我肯定以后会去fetch
,但是要在页面加载周期中更早地进行预加载。但是,通过以下设置,我仍然获得与HTML响应相当的负载。
我在HTML文档中尝试了以下<link>
:
<link rel="preload" href="/huge_html" as="document" />
然后,我有以下js:
function sleep(ms){
return new Promise(resolve => setTimeout(resolve, ms));
}
async function setup(path) {
await sleep(5000);
let response = await fetch(path)
};
Promise.all([setup('/huge_html'), setup('/huge_html2')])
在这种情况下,两个/huge_html
响应都以几乎相同的响应时间返回,而我预计/huge_html2
会更慢,因为/huge_html
被标记为预加载。
我已经阅读了MDN和其他有关preload
行为的文章,但对于为什么我无法获得preload
在HTML上运行的可重复测试用例,我仍然感到困惑文件。