何时使用 JavaScript MIME 类型 application/javascript 而不是 text/javascript?

新手上路,请多包涵

基于问题 jQuery code not working in IEtext/javascript 在 HTML 文档中使用,因此 Internet Explorer 可以理解它。

但我想知道,你什么时候会使用 application/javascript ,更重要的是,你为什么要使用它而不是 text/javascript

原文由 Mark Baijens 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 406
2 个回答

理论上,根据 RFC 4329 application/javascript

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

一个。 RFC 说用户代理应该对脚本进行 BOM 嗅探以确定类型(我不确定是否有浏览器确实这样做);

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

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

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

text/javascripttext/xml 可能不是官方的正确的东西,但出于兼容性原因,今天每个人都使用它们,而它们不是正确的东西的原因实际上是完全不重要的.

原文由 bobince 发布,翻译遵循 CC BY-SA 2.5 许可协议

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

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

原文由 Harmen 发布,翻译遵循 CC BY-SA 2.5 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题