这些标题之间有什么区别?
Content-Type: application/javascript
Content-Type: application/x-javascript
Content-Type: text/javascript
哪一个最好,为什么?
请不要说它们是相同的 - 如果它们相同则不会有三个相同。我知道两者都有效 - 但我想知道其中的差异。
答案 0 :(得分:302)
text/javascript
已过时,application/x-javascript
是实验性的(因此x-
前缀)为过渡期,直到application/javascript
可以标准化。
您应该使用application/javascript
。 RFC中记录了这一点。
就浏览器而言,没有区别(至少在HTTP标头中)。这只是一个更改,以便text/*
和application/*
MIME类型组在可能的情况下具有一致的含义。 (text/*
MIME类型用于人类可读的内容,JavaScript不是为了直接向人类传达意义而设计的。)
请注意,在脚本元素的application/javascript
属性中使用type
将导致在某些旧版浏览器中忽略脚本(如未知语言)。继续在那里使用text/javascript
或完全省略该属性(在HTML 5中允许)。
这在HTTP标头中不是问题,因为普遍使用的浏览器(据我所知)要么完全忽略脚本的HTTP内容类型,要么现代化足以识别application/javascript
。
答案 1 :(得分:21)
以x-
开头的mime-types未标准化。在javascript的情况下,它有点过时了。
附加第二个代码段
<?Header('Content-Type: text/javascript');?>
要求short_open_tags
启用。你应该避免它。
<?php Header('Content-Type: text/javascript');?>
然而,完全正确的javascript mime类型是
application/javascript
http://www.iana.org/assignments/media-types/application/index.html
答案 2 :(得分:8)
根据RFC 4329,JavaScript的正确MIME类型应为application/javascript
。但是,旧的IE版本因为期望text/javascript
而窒息。
答案 3 :(得分:4)
使用type =&#34; application / javascript&#34;
对于HTML5,type属性已过时,您可以将其删除。注意:它默认为&#34; text / javascript&#34;根据w3.org,所以我建议添加&#34; application / javascript&#34;而不是删除它。
runtime.onMessageExternal
类型 attribute提供脚本的语言或数据的格式。如果 如果属性存在,则其值必须是有效的MIME类型。该 不得指定charset参数。默认值,如果使用,则使用 该属性不存在,是&#34; text / javascript&#34;。
使用&#34; application / javascript&#34;,因为&#34; text / javascript&#34;已过时:
RFC 4329:http://www.w3.org/TR/html5/scripting-1.html#attr-script-type
- 醇>
部署的脚本媒体类型和兼容性
ad-hoc中使用了各种未注册的媒体类型 时尚标签和交换用ECMAScript编写的程序 JavaScript的。其中包括:
+ ---------------------------------------------- ------- + | text / javascript | text / ecmascript | | text / javascript1.0 | text / javascript1.1 | | text / javascript1.2 | text / javascript1.3 | | text / javascript1.4 | text / javascript1.5 | | text / jscript | text / livescript | | text / x-javascript | text / x-ecmascript | | application / x-javascript | application / x-ecmascript | | application / javascript | application / ecmascript | + ------------------------------------------------- ---- +
使用&#34;文本&#34;已知这种内容的顶级类型 有问题的。因此,该文档定义了text / javascript和text /
ecmascript但标记为&#34;过时&#34;。使用实验和 不鼓励未注册的媒体类型,如上面部分所列 媒体类型,* application/javascript * application/ecmascript
也在本文档中定义,仅供参考 使用,而应该使用。
本文件定义了相应的处理要求 键入text / javascript,text / ecmascript和application / javascript 媒体类型应用/ ecmascript的使用和支持是
比在其中定义的其他媒体类型广泛得多 这个文件。使用它有利于本文件定义 更严格的处理规则,以促进更多的互操作性 处理
x-javascript是实验性的,不要使用它。