有时(不是每次,但通常)当我在本地开发时,在成功下载数百个 JS 文件后(看起来我们目前拉取了 1393 个脚本),Chrome 会从并行下载文件切换到下载它们连续。
服务器是node,使用express和模块“serve-static”。我正在使用 Chrome 43.0。我正在使用 Node 0.12.2。我正在使用静态服务 1.9.3。这些文件都是使用像 <script src="foobar.js"></script>
这样的常规脚本标签来请求的。 .我怀疑这是一个 Chrome 问题,因为服务器响应没有改变。但浏览器请求也不会改变,只会改变它们的时间/顺序。
有什么想法吗?
编辑:鉴于这看起来是一个 Chrome 问题,我已在此处向 Chromium 提交错误报告:https://code.google.com/p/chromium/issues/detail?can=2&q=serial%20script%20downloading&colspec=ID%20Pri%20M%20Week%20ReleaseBlock%20Cr%20Status%20Owner%20Summary%20OS%20Modified&id=500948&thanks=500948&ts=1434467876
最佳答案
每个浏览器都有一个最大数量的并发请求,它将同时执行来自任何给定主机的并发请求,并将所有其他请求排队。大多数浏览器支持每个主机名 6 个。有关每个浏览器的更多详细信息,请参见此处:http://www.browserscope.org/?category=network&v=top
1393 是在一个页面上要下载很多脚本。您可能需要查看整个项目架构和文件结构,以最小化这些文件以解决根问题。
您可以考虑将您的 javascript 文件缩小/压缩到单个文件或一组文件中,即使您只有几个 javascript 文件也应该这样做以优化性能。
您还可以使用 CDN(内容分发网络)来托管部分或全部文件。通过在不同的主机名(即 http://host1.com/file1.js 和 http://host2.com/file2.js)上分发文件,浏览器可以同时从每个主机下载最大并发文件。
关于javascript - Chrome 切换到串行下载脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30855456/