0

我有一个看起来像这样的 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);

实际上稍后执行。因此,一些更多的资源被添加到资源时序缓冲区中。但是,并非所有这些都被添加。

有没有办法停止资源的并行下载?首先下载第一个资源,让代码执行,然后继续并行下载剩余资源。

4

1 回答 1

1

setResourceTimingBufferSizeresourcetimingbufferfull事件。据说没有 PerformanceResourceTiming 对象将从性能条目缓冲区中删除

var buffSize = 100

if (window.performance && window.performance.addEventListener) window.performance.addEventListener('resourcetimingbufferfull', function(){
  buffSize += 100
  window.performance.setResourceTimingBufferSize(buffSize);
})

当缓冲区已满时,它会增加 +100

于 2019-05-16T18:48:48.250 回答