在关闭<script>
代码之前放置<body>
代码,将它们放在<head>
部分并指定defer="defer"
属性吗?
谢谢。
答案 0 :(得分:2)
是/否。
是的,因为在执行之前放置defer标签会等到文档加载完毕。
否,因为在<script>
标记之前放置</body>
并不一定意味着文档已完全加载,因为您可以在结束正文标记和结束HTML标记之间添加其他标记。实施例
<html>
<head>
</head>
<body>
<script>...</script>
</body>
<link/>
<script>
although it is invalid HTML most browsers will render tags outside the body. This is
probably more of an error in code
<div> some content</div>
</html>
另外值得注意的是,脚本标记的defer属性在所有浏览器中都不起作用。
已编辑:
关于更快加载页面的性能,您可能希望查看本文,它提供了一些指导,包括将脚本和css放在何处
答案 1 :(得分:1)
延迟需要Gecko 1.9.1这个 布尔属性设置为指示 到脚本的意思的浏览器 在文件发布后执行 已被解析。由于此功能没有 但是已经被所有其他人实施了 主流浏览器,作者不应该 假设脚本的执行 实际上会被推迟。从不打电话 来自延迟脚本的document.write() (从Gecko 1.9.2开始,这将会受到打击 离开文件)。推迟 不应在脚本上使用该属性 没有src属性。 从Gecko 1.9.2开始,defer属性 在没有的脚本上被忽略 src属性。但是,在Gecko 1.9.1如果设置了defer属性,则甚至内联脚本也会延迟。
当文档完成解析并且<body>
标记的末尾相似但不完全相同时。
同样重要的是要注意,这仅适用于具有外部src
设置的脚本。
答案 2 :(得分:1)
通常是的,但浏览器并不保证他们在加载页面后会执行JavaScript,除非你指定(defer =“defer”)。