Chrome会使用async属性延迟脚本加载

时间:2015-02-07 22:40:00

标签: google-chrome browser asynchronous

我正在加载Angular应用并使用<script src="/init">调用加载一些初始化数据。

我发现Chrome在启动所有javascript脚本之前都没有启动Angular $编译过程,包括/init调用,这可能需要很长时间。

因此,为了使Angular编译过程在/init返回之前开始,我添加了async,因此<script src="/init" async>得到了所需的结果。

但是,async存在一个奇怪的问题(仅在Chrome中显示),如果添加了async,则Chrome不会在列出所有其他资源之后请求该资源页面已加载(不是Angular ng-includes等,只是具有srchref属性的常规页面。

网络导致DevTools 没有 async。最后一个是/init调用,之前的调用是调用Angular代码的脚本标记

without async

此处 async

with async

最后一栏是<script src="/init" async>栏。如果你问我,async脚本已经同步加载(按顺序)。

所以我误解了async是如何运作的?或者这是Chrome中的一个错误(XP版本40.0.2214.94米)?我猜测后者,因为Firefox会启动所有脚本加载而不管{I}期待的async

更新 Chrome小组intentionally reduced the priority of async script load,所以我的问题根本就不是错误。这是一个功能! :)

0 个答案:

没有答案