我看到了两种方式,两种实现的工作方式只是结构有点不同。根据你的经验,哪个更好,为什么?
头部,或关闭身体标签之前。 当 DOM 加载 JS 然后执行时,这正是 jQuery document.ready 所做的。
我总是把我的脚本放在标题中。我的理由:
W3学校有一个 关于这个话题的文章写得不错。
<head>中的脚本
<head>
脚本在执行时将被执行 或者当事件被触发时, 被放置在功能中。 把你的功能放在头上 部分,这样他们都在一起 地方,他们不干涉 页面内容。
脚本在执行时将被执行 或者当事件被触发时, 被放置在功能中。
把你的功能放在头上 部分,这样他们都在一起 地方,他们不干涉 页面内容。
<body>中的脚本
<body>
如果你不想让你的剧本 放置在函数中,或者如果您的 脚本应该写页面内容,它 应该放置在身体部分。
在页面头部编写脚本的问题是阻塞。在下载、解析和执行脚本之前,浏览器必须停止处理页面。原因很明显,这些脚本可能会在页面中插入更多的内容来改变渲染的结果,它们也可能会删除不需要渲染的内容,等等。
一些更现代的浏览器违反了这一规则,没有阻止脚本的下载(ie8是第一个) ,但总的来说,下载并没有花费大部分时间阻塞。
看看 更快的网站,我刚刚读完它,它介绍了把脚本放到页面上的所有快速方法,包括把脚本放在页面的底部,以便完成渲染(更好的用户体验)。
实际上,我会用多个选项来回答这个问题,其中一些选项实际上是在主体中渲染的。
<input onclick="myfunction()"/>
脚注: “当你需要它,而不是先前”适用于最后一个项目时,页面阻塞(感知加载速度)。用户对 是现实的感知ーー如果用户认为 是加载速度更快,那么它的确加载速度更快(尽管代码中可能仍然存在这种情况)。
编辑: 参考文献:
注意: 如果你把脚本块放在标记中,它可能会占用一些浏览器的空间(ie7和 Opera 9.2就有这个问题) ,所以把它们放在一个隐藏的 div 中(在 div 中使用 CSS 类: .hide { display: none; visibility: hidden; })
.hide { display: none; visibility: hidden; }
标准: 注意,如果存在问题,标准允许将脚本块放置在任何地方: http://www.w3.org/TR/1999/REC-html401-19991224/sgml/dtd.html和 http://www.w3.org/TR/xhtml11/xhtml11_dtd.html
编辑2: 请注意,只要有可能(总是?)您应该将实际的 Javascript 放在外部文件中并引用它们——这不会改变相关的序列有效性。