曾几何时,在<head>
或<body>
<script>
有许多激烈的辩论。不使用<script defer>今天有什么好的理由?
许多SO帖子已经指出拇指的最佳实践/规则是把<script>
的<body>
年底之前不会阻止HTML解析器,导致更快的第一个屏幕漆和客户更快的访问DOM,从而提供更好的用户体验。
这必须是一个duplicate╰(`□')╯
稍候... <script>
可以deferred
现在,实际上是相当长一段时间!
老帖子说
推迟脚本可能会导致JS依赖问题
不,不会。它在DOM被解析时立即保留执行的顺序。
它不工作,跨厂商
是的,它曾经是,但今天它几乎被所有主要的浏览器厂商的支持:http://caniuse.com/#search=defer,除了可能有一些问题,IE < 10的评论指出。
然而,它提供的好处是显而易见的,至少对我来说,因为它下载并行脚本在较早的时间(之前开始解析DOM),因此没有必要随后请求脚本,并缩短所花费的时间带来整个页面互动。
短,这个问题是相似的:
<body>
...
<script src='cdn/to/jquery'>
<script src='cdn/to/bootstrap'>
<script src='script/depends/on/jqueryandbootstrap'>
</body>
注:这可能是一个“古老”话题的任何充分的理由不能不是使用此使用
<head>
...
<script src='cdn/to/jquery' defer>
<script src='cdn/to/bootstrap' defer>
<script src='script/depends/on/jqueryandbootstrap' defer>
</head>
有很多讨论。然而,随着网络技术的快速发展,浏览器厂商与新的网络规格更好地协调一致,许多旧的计算器答案可能无法保持最新。
caniuse中有一个说明IE <10可能被破坏 - 在我看来,这是现在开始使用'defer'的一个很好的理由:p –
[这里有一些很好的阅读。](http://www.growingwiththeweb .com/2014/02/async-vs-defer-attributes.html) – Pointy
@Pointy我已经看到了,这是一个很好的可视化,除了我认为'async'和'defer'应该占用更少的时间。 – Xlee