Javascript MIMEtypes

基于这个问题: jQuery代码不能在IE中工作

所以在HTML文档中使用了text/javascript ,因此Internet Explorer可以理解它。 但是我想知道,什么时候使用application/javascript ,更重要的是,为什么要用它来代替text/javascript

理论上,根据RFC 4329 , application/javascript

它应该是application的原因与该types是否可读或可执行无关。 这是因为有语言/types本身定义的自定义字符集确定机制,而不仅仅是genericscharset参数。 一个text的子types应该能够被代理转码为另一个字符集,改变字符集参数。 这不是JavaScript的原因,因为:

一个。 RFC说,用户代理应该在脚本上进行BOM嗅探来确定types(我不确定是否有浏览器实际上这样做);

湾 浏览器使用其他信息(包括页面的编码和某些浏览器中的script charset属性)来确定字符集。 所以任何试图转码资源的代理都会破坏用户。 (当然,实际上从来没有人使用代码转换代理,但这就是意图。)

因此,文件的确切字节必须完全保留,这使其成为二进制applicationtypes,而不是技术上基于字符的text

出于同样的原因, application/xml正式优于text/xml :XML具有自己的带内charset信号机制。 而且每个人都忽略了XML的application

text/javascripttext/xml可能不是官方的正确的事情,但是出于兼容性的原因,现在每个人都使用这个东西,而他们不是正确的事情的原因实际上是完全不重要的。

Javascript的MIMEtypes的问题是多年来一直没有标准。 现在我们已经有了application / javascript作为官方的MIMEtypes。

但实际上,MIMEtypes根本不重要,因为浏览器可以自己确定types。 这就是为什么HTML5规范声明不再需要type="text/javascript"原因。

application因为.js文件不是用户想读的东西,但应该得到执行。

应用程序的JavaScript是正确的types使用,但由于它不支持IE6-8你会被卡住的文字/ JavaScript的。 如果你不关心有效性(不包括HTML5),那么就不要指定types。