javascript - 现代浏览器是并行加载脚本还是顺序加载脚本?

标签 javascript loading modernizr

我正在评估脚本加载优化的现有资源,但我阅读了一些文章,例如 this , 指的是旧版浏览器会阻止其他下载,直到此顺序脚本加载阶段完成。我检查了 Modernizr(yepnope.js)、headjs 和 ControlJs 作为候选者。但是,是否有必要使用此工具在现代浏览器中并行加载脚本?

最佳答案

我相信现在大多数浏览器默认会并行加载脚本;但浏览器不会默认并行执行脚本。例如,在下面的代码中,脚本将被并行加载。在图像中我们可以看到 Fast1.js 和 Fast2.js 加载速度非常快,但是根据浏览器控制台中的时间,Fast2.js 在 Fast1.js 执行后 3 秒执行。

此外,还有一点要记住,文件的顺序可能会有所不同。 Backbone.js 文件依赖于 underscore.js 文件。如果我们更改这些文件的顺序,其中 bacbone.js 在 underscore.js 之前,则会引发错误。

<html >
<head>
    <title></title>
    <script src="scripts/fast1.js" type="text/javascript"></script>
    <script src="scripts/libs/jquery-1.8.3.js" type="text/javascript"></script>
    <script src="scripts/libs/underscore.js" type="text/javascript"></script>
    <script src="scripts/libs/backbone.js" type="text/javascript"></script>
    <script src="scripts/fast2.js" type="text/javascript"></script>
</head>
<body>
    Hello
    <script type="text/javascript">
        console.log("html:   " + Date());
    </script>
    <img src="imgs/bImg.png" />
</body>
</html>

这是 JavaScript 文件 Fast1.js 和 Fast2.js 的代码

console.log("Fast 1: " + Date())

Script file loading in browser

对于脚本加载,我使用 Require.js。它还提供了将代码组织到单独文件中的模块的好处。

这是我创建的关于浏览器脚本加载的博客文章:Browser Script Loading

这里有几篇关于脚本加载的文章:

关于javascript - 现代浏览器是并行加载脚本还是顺序加载脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12122369/

相关文章:

javascript - 通过ajax向服务器发送base64图像

javascript - 自定义 wpDataTables JS - 正面和负面

javascript - Google 地方信息自动完成 : rectangular bounds vs radius

jquery - 使用 Modernizr 在 Firefox 中输入类型编号

javascript - iOS 4 Safari 和 Android 2.3 浏览器 Modernizr/matchMedia/Enquire.js 缓存问题

javascript - 脚本无法在非基于 Chromium 的浏览器中进行评估

javascript - 在没有jQuery的情况下使用带有回调的javascript动态加载css文件

firefox - 当标题中不存在内容长度时,如何在 Firefox 中加载进度条

java - 在运行时访问 jar 文件库

javascript - 动态加载脚本时构造 javascript 并延迟执行