我有一个看起来像这样的HTML文件
<html>
<head>
<script src="1.js"></script>
<script src="2.js"></script>
...
<script src="200.js"></script>
</head>
</html>
1.js只包含一行
window.performance.setResourceTimingBufferSize(250);
默认情况下,Chrome中的资源缓冲区大小为150。
但是,当我使用Resource Timing API查看所有资源时,资源的长度不是200.它随机变化在150到200之间。
我知道为什么会这样。因为Chrome会尝试并行下载资源,因此会在Resource Timing API中注册资源。
1.js中的摘录
window.performance.setResourceTimingBufferSize(250);
实际上会稍后执行。因此,一些更多的资源被添加到资源定时缓冲区。但是,并非所有这些都被添加。
有没有办法停止并行下载资源?首先下载第一个资源,让代码执行,然后并行地继续下载剩余资源。
答案 0 :(得分:0)
有resourcetimingbufferfull event至setResourceTimingBufferSize。据说没有PerformanceResourceTiming对象要从性能条目缓冲区中删除。
var buffSize = 100
if (window.performance && window.performance.addEventListener) window.performance.addEventListener('resourcetimingbufferfull', function(){
buffSize += 100
window.performance.setResourceTimingBufferSize(buffSize);
})
当缓冲区已满时,它会增加+100