不赞成将javascript直接放在HTML文档上

Is placing javascript directly on HTML document deprecated?

本文关键字:HTML 文档 javascript 不赞成      更新时间:2023-12-15

我很震惊地从Quirksmode中读到以下内容:

不推荐:直接JavaScripts

由于第2C节中解释的原因,请勿使用直接JavaScripts这本书。本节仅因历史原因而保留。

最简单的方法是将脚本直接放置在页面中。怎样放置

<script language="javascript" type="text/javascript">
<!--
script goes here
// -->
</script>

根据我阅读本文的理解,将使用<script>标记上的src属性来包含javascript。我没有这本书,也找不到更多的网上参考资料。有人知道这是正确的吗?还是我误解了它想说的话?

没有HTML规范将内联JavaScript标记为弃用或过时。

然而,人们普遍认为这不是最佳实践。

PPK意味着该节本身已被弃用。在出版时,那里提出的建议被普遍接受并具有相关性,但它不再符合当前的标记语言和最佳实践:

  1. 自HTML 4.01以来,language属性已被弃用
  2. 在HTML5中,type属性的默认值是text/javascript——因此,它通常可以被丢弃
  3. 围绕脚本本身的HTML注释(<!---->)是IE 2和Netscape 1代浏览器的一种变通方法,近20年来一直不需要
  4. 稍后,他建议您将脚本放置在文档的head中。这在拨号时代是有道理的,但现在建议除了一些特定的情况(例如Modernizr、html5shiv)之外,您应该将脚本放在文档body,以防止它们阻止渲染和并行下载

更多最新建议

通常避免内联脚本,以获得更好的可维护性和可缓存性。您仍然允许内联脚本,如果:

  • 仅为该页面动态生成脚本;或
  • 该脚本非常小,由于避免了额外的HTTP请求,您可以证明性能有了可衡量的、有价值的改进

除非另有必要,否则对内联JS使用以下语法。

HTML5:

<script>
    // ...
</script>

HTML 4.01:

<script type="text/javascript">
    // ...
</script>

XHTML5:

<script>
//<![CDATA[
    // ...
//]]>
</script>

XHTML 1.x:

<script type="text/javascript">
//<![CDATA[
    // ...
//]]>
</script>

它没有被弃用,而且它仍然被广泛使用。

如果你看看这个问题:https://softwareengineering.stackexchange.com/questions/86589/why-should-i-avoid-inline-scripting这很好地解释了为什么这是个坏主意。

我对它最大的问题是,它让你的html页面看起来塞满了东西。例如,如果您有一点javascript内联,而另一个文件中有一点javascript,那么如果需要更改,很难找到合适的代码。

内联css也是如此。它使您的html文件更难阅读和理解。

脚本标记不被弃用。

相关部分称为"弃用:直接JavaScripts",并且注释引用了章节的标题。必须阅读:不要对标记使用"Direct JavaScripts"建议语法。本节仅因历史原因而保留。"

该部分已弃用

http://www.peachpit.com/articles/article.aspx?p=1338952&seqNum=3