JavaScript延迟

JavaScript延迟,javascript,head,deferred,placement,Javascript,Head,Deferred,Placement,在关闭标记之前放置标记是否与将它们放置在部分并指定defer=“defer”属性的sa相同 多谢各位 延迟需要Gecko 1.9.1这一版本 布尔属性设置为指示 向浏览器显示脚本的含义 待文件完成后执行 已解析。因为这个功能还没有实现 然而,所有其他国家都实施了这一计划 主要浏览器,作者不应 假设脚本的执行 实际上会被推迟。不要打电话 来自延迟脚本的document.write() (从Gecko 1.9.2开始,这将 把文件拿走)。推迟 属性不应用于脚本 没有src属性的。 自Gecko 1.

在关闭
标记之前放置
标记是否与将它们放置在
部分并指定
defer=“defer”
属性的sa相同

多谢各位

延迟需要Gecko 1.9.1这一版本 布尔属性设置为指示 向浏览器显示脚本的含义 待文件完成后执行 已解析。因为这个功能还没有实现 然而,所有其他国家都实施了这一计划 主要浏览器,作者不应 假设脚本的执行 实际上会被推迟。不要打电话 来自延迟脚本的document.write() (从Gecko 1.9.2开始,这将 把文件拿走)。推迟 属性不应用于脚本 没有src属性的。 自Gecko 1.9.2以来,延迟属性 在没有 src属性。然而,在壁虎 1.9.1如果设置了延迟属性,则即使内联脚本也会延迟

当文档完成解析后,
标记末尾的内容类似,但不完全相同

还需要注意的是,这仅适用于具有外部
src
集的脚本。

是/否

是,因为放置defer标记要等到文档加载后才能执行

否,因为将
放在
标记之前并不一定意味着文档已完全加载,因为在结束正文标记和结束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>

...
尽管它是无效的HTML,但大多数浏览器都会在主体之外呈现标记。这是
可能更多的是代码中的错误
一些内容
还要注意的是,脚本标记的defer属性在所有浏览器中都不起作用

编辑:

关于更快加载页面的性能,您可能想看看本文,它提供了一些指导原则,包括将脚本和css放在何处


通常是的,但是浏览器不保证在加载页面后执行JavaScript,除非您指定(defer=“defer”)。

我不明白,这不是我说的:加载DOM后,他们将使用defer=“defer”执行代码吗?您的问题是:X和Y是一样的吗?事实上,在大多数情况下,它们都是一样的。我所说的是,这是不确定的。也就是说,浏览器不会告诉您:“如果您将脚本放在末尾,它将在加载后执行”。他们通常会这样做,但如果他们在呈现页面之前运行您的脚本,他们将不会违反他们的文档,因为这些文档后来没有说明这一点。我要求的是速度,不能在JavaScript中使用DOM,我将使用事件。页面结构等不需要放在主体之前的JavaScript,因此可以在页面可查看之后最后加载。我不明白你说“不”是什么意思。“将标签放在标记之前并不一定意味着文档已完全加载,因为在结束正文标记和结束HTML标记之间可以有其他选项卡”为什么我会在和之间有标记?@Francisc我编辑了我的答案,因为我有一些格式问题。很抱歉。关于你对速度的评论。我想提到的唯一一点是,浏览器将根据需要缓存JS文件,而您实际上不会在缓存中加载JS文件。使用延迟并不一定对您有利,因为延迟只会在页面完全加载之前停止执行。它不会延迟获取脚本文件本身的调用。因此,在您的实例中,您需要将脚本标记放在
标记之后,以获得更好的性能。@JohnHartsock对较差的跨浏览器支持没有任何评论?@Raynos我提到过延迟属性“在所有浏览器中都不起作用”@JohnHartsock我提到过我是盲人吗?不知道我怎么会错过。