以HTML格式并行下载JS文件

时间:2017-03-28 09:50:16

标签: javascript google-chrome asynchronous resource-timing-api

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

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

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

1 个答案:

答案 0 :(得分:0)

resourcetimingbufferfull eventsetResourceTimingBufferSize。据说没有PerformanceResourceTiming对象要从性能条目缓冲区中删除

var buffSize = 100

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

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