我应该在身体或html的头部写脚本吗?

Kho*_*hoi 136 html javascript

我已经看到了两种方式,两种方式的实现工作只是结构有点不同.根据您的经验,哪个更好,为什么?

Mar*_*iss 97

我实际上会用多个选项回答这个问题,其中一些选项实际上是在正文中呈现的.

  • 将库部分脚本(例如jQuery库)放在head部分中.
  • 将正常脚本放在头部,除非它成为性能/页面加载问题.
  • 放置与包含内容相关的脚本,包括内部和末尾.其中一个例子是asp.net页面中的.ascx用户控件 - 将脚本放在该标记的末尾.
  • 放置影响正文末尾页面渲染的脚本(在正文闭包之前).
  • 不要将脚本放在标记中,例如<input onclick="myfunction()"/>- 更好地将它放在脚本体中的事件处理程序中.
  • 如果您无法做出决定,请将其置于脑海中,直到您有理由不再出现页面阻止问题为止.

脚注:"当你需要它而不是之前"适用于页面阻塞时的最后一项(感知加载速度) - 用户认为是现实,如果加载速度更快,它的加载速度更快(即使东西仍然可能仍然存在)在代码中出现).

编辑:参考:

附注:如果您放置标记内脚本块,可以通过占用空间影响在某些浏览器布局(IE7和歌剧9.2,已知有这个问题),所以将它们放置在一个隐藏的DIV(使用一个CSS类,如:.hide { display: none; visibility: hidden; }上DIV)

标准:请注意,如果存在问题,标准允许将脚本块放置在几乎任何位置: http://www.w3.org/TR/1999/REC-html401-19991224/sgml/dtd.htmlhttp:// www.w3.org/TR/xhtml11/xhtml11_dtd.html

EDIT2:请注意,只要有可能(总是?),您应该将实际的Javascript放在外部文件中并引用它们 - 这不会改变相关的序列有效性.

  • 您是否拥有有关此页面阻止问题或浏览器下载资源的更多信息的来源? (2认同)

Ken*_*uys 39

在页面头部编写脚本的问题是阻塞.浏览器必须停止处理页面,直到下载,解析和执行脚本.原因很明显,这些脚本可能会在页面中插入更多内容来更改渲染结果,它们也可能会删除不需要渲染的内容等.

一些更现代的浏览器违反了这条规则,因为没有阻止下载脚本(ie8是第一个),但总的来说下载并不是阻塞所花费的大部分时间.

查看更快的网站,我刚读完它,它可以解决将脚本放到页面上的所有快速方法,包括将脚本放在页面底部以允许渲染完成(更好的用户体验).

  • 很好的答案,技术上将脚本放在标题中是干净的,但从最终用户的角度来看,SEO将脚本放在文档的底部,因为最后一件事有很多很多好处.在某些页面上,我看到只需将脚本移动到底部,页面的明显响应性就会增加很多倍.总体而言,它可能无法更快地完全加载,但对于最终用户来说,当他们看到内容时感觉更快! (4认同)

Vin*_*inz 15

W3Schools有一篇关于这个主题好文章.

脚本在 <head>

调用它们或触发事件时要执行的脚本都放在函数中.

将您的功能放在head部分,这样它们都在一个地方,并且它们不会干扰页面内容.

脚本在 <body>

如果您不希望将脚本放在函数内,或者您的脚本应该编写页面内容,则应将其放在body部分中.

  • 胡说些什么... (11认同)