整个问题都适合标题。并添加一些上下文:我不是在问规范所要求的最佳方法,而是考虑到当今部署的浏览器的混合,哪种方法最有效。
一些数据点:
text/javascript
用于其主页上使用的JS。text/javascript
。application/x-javascript
将JavaScript文件与Ajax libraries service一起提供。application/x-javascript
提供其JS。application/x-javascript
用于其主页上提供的JavaScript。text/javascript
已过时application/x-javascript
在尝试移至…时是实验性的]application/javascript
是JS的当前官方MIME类型就是说,浏览器经常忽略服务器发送的content-type
,并特别注意type
属性(有些可能无法识别application/javascript
。]
我的推荐:
type
属性[在大多数情况下,服务器发送的mime类型没有实际差异。我会使用application/javascript,这也是RFC推荐的。
如果您选择在页面中为js使用application / javascript,则IE7和IE8将不会运行您的脚本!责怪Microsoft,但如果您希望大多数人运行页面,请使用text / javascript。
过去是language="javacript"
。然后更改为type="text/javascript"
。现在是type="application/javacript"
。好的,这变得愚蠢了。一些较旧的浏览器无法识别新的application/javascript
,但仍可识别较旧的text/javascript
。我计划继续使用它,否则我将浪费数小时的时间尝试将text/javascript
的每个实例更改为application/javascript
。现在总有一天相反。有一天,最新的浏览器可能会拒绝旧技术,以便严格遵守标准。但是直到浏览我的网站的人们开始抱怨“自升级浏览器以来,大约50%的网站消失了”,我才没有动机更改我的网站中的代码。
它曾经是“文本/ javascript”,但是已经过时(请参阅IANA List),现在应该是“ application / javascript”(请参阅another IANA List)。
这是该问题的2020年答案。
[text/javascript
是每个the HTML Standard的正确的JavaScript MIME类型,其指出:
服务器应将
text/javascript
用于JavaScript资源。服务器不应将其他JavaScript MIME类型用于JavaScript资源,并且不得使用非JavaScript MIME类型。
和also:
[…]在此规范中用于引用JavaScript的MIME类型为
text/javascript
,因为这是最常用的类型,尽管它是根据RFC 4329正式被淘汰的类型。
正在努力在IETF级别的RFC中反映这一现实:https://datatracker.ietf.org/doc/draft-ietf-dispatch-javascript-mjs/
[任何声称“ text/javascript
都是过时的人”都是基于RFC 4329这么说的,HTML标准和上述IETF草案(即即将发布的RFC)都在明确纠正。