我应该在我的SCRIPT标签中包含type ="text/javascript"吗?

pei*_*rix 16 javascript

我通读了Crockford的JavaScript最佳实践,他说:

无需使用语言或类型属性.确定MIME类型的是服务器,而不是脚本标记.

但我从来没有见过有人type在他们的<script>标签中省略了这个属性......

你们包括type吗?为什么不)?

Aar*_*ell 11

你误解了Crockford的意思,他没有说这个type属性是完全无效的,只是它不正确.JavaScript的MIME类型是application/javascript(或者application/ecmascript我现在不记得了).

一般用法是,虽然是text/javascript该浏览器会处理,没有任何问题,因为这一直是在事实上的很长一段时间标准.

关于<script src="..."标记,它是冗余的,因为服务器确定文件的MIME类型,然后浏览器将处理该类型.

他最好在YUI Theatre的一个视频中解释它(http://developer.yahoo.com/yui/theater/).我不记得究竟是哪一个他谈到这个,我认为它是在高级JavaScript系列中(但是我已经看了几次,所以它们彼此模糊).

因此,如果您想编写有效的XHTML,您需要提供类似的东西,text/javascript但它不是JavaScript语言的官方 MIME类型.


Dan*_*ker 8

如果脚本嵌入页面中,Crockford的建议则无关紧要.

如果您想编写符合标准的HTML,那么它仍然不相关.

他通常会发现与JavaScript有关的一切,所以他可能只是给你一些背景信息,而不是告诉你该怎么做.

按照链接,该页面显示其年龄.例如:

<script src=filename.js>标签应尽可能放在身体的后期.这减少了脚本加载对其他页面组件造成的延迟的影响.

"现代"方法是使用jQuery(或类似样式)在文档加载时执行处理,自动解决该问题,允许您将脚本标记放在逻辑意义上的任何位置.

  • 尽可能晚地将SCRIPT放入BODY的建议仍然有用.请参阅http://developer.yahoo.com/performance/rules.html#js_bottom (9认同)
  • @Earwicker,你必须在使用它的ready事件之前加载jQuery,然后你想在页面的末尾放置jQuery.我打赌,如果你使用的是jQuery UI,那么在准备好的事件之后你实际上并没有附加脚本节点,对吗? (2认同)

mli*_*bby 5

HTML5规范说默认typetext/javascript......所以在HTML5中,你可以在你使用Javascript编写脚本的所有情况下留空.有关详细信息,请参阅规范.

在HTML4中,type属性是必需的,因此如果您担心使用"有效"HTML,则应该包含该属性,显然如果Crockford说不需要该属性,则在这种情况下无效HTML没有明显的缺点.