【发布时间】:2014-06-15 08:15:07
【问题描述】:
如果我在下面的脚本标签中使用异步,我会遇到错误
<script async src="main.js"></script>
该错误仅显示在 chrome 上
Uncaught ReferenceError: $ is not defined
如果我从脚本标签中删除了异步,我的控制台中不会再出现错误,并且一切正常。
你知道为什么会出现这个问题吗?
编辑
下面的脚本放在head标签里面
<!-- JS -->
<script async src="../js/jquery/jquery-1.10.1.min.js"> </script>
<script async src="../js/vendor/modernizr-2.8.2.min.js"></script>
<script async src="../js/asynchronous-resources/2014-06-03-asynchronous-resources.js"></script>
<!-- IE JS -->
<!--[if !IE]><!--><script async src="../js/ie10.js"></script><!--<![endif]-->
main.js 被添加到页脚。
<script async src="../js/main.js"></script>
我在 stackoverflow 上发现了一个类似的问题。 Load jquery asynchronously before other scripts
我不得不更改 async 以延迟,现在在 firefox、chrome 和 IE9 中没有更多问题了。
它在 IE8 和 IE7 中完全中断。如果我使用 defer,jQuery 就会停止工作。
【问题讨论】: