【发布时间】:2018-04-09 06:28:49
【问题描述】:
因此,我遵循 Google PageSpeed 的建议来推迟首屏脚本。假设这是我<head>中的代码:
<script src="/js/jquery.js"></script>
<script src="/js/functions.js"></script>
functions.js 脚本依赖于 jQuery,因此在 functions.js 之前加载和执行 jquery.js 至关重要。
我尝试了什么:
推迟
<script src="/js/jquery.js" defer></script>
<script src="/js/functions.js" defer></script>
虽然这有效并且functions.js 被正确执行,但当我加载页面时,我看到它闪烁,好像尚未加载 CSS。注意上面的代码在<head>。如果我从jquery.js 中删除defer 属性,闪烁就会消失。这引出了我的问题:
混合
<script src="/js/jquery.js" async></script>
<script src="/js/functions.js" defer></script>
在依赖脚本上使用async 并在依赖脚本上使用defer 是否确保它们始终按该顺序执行?它似乎在我的测试中有效,但我对解析器的工作方式知之甚少,无法确定。
【问题讨论】:
标签: javascript jquery asynchronous html-parsing