这些标题之间有什么区别?
Content-Type: application/javascript
Content-Type: application/x-javascript
Content-Type: text/javascript
哪一个最好,为什么?
请不要说它们是相同的——如果它们是相同的,就不会有三个。我知道这两种工作 - 但我想知道区别。
这些标题之间有什么区别?
Content-Type: application/javascript
Content-Type: application/x-javascript
Content-Type: text/javascript
哪一个最好,为什么?
请不要说它们是相同的——如果它们是相同的,就不会有三个。我知道这两种工作 - 但我想知道区别。
text/javascript
已经过时,并且application/x-javascript
在x-
过渡时期是实验性的(因此是前缀),直到application/javascript
可以标准化。
你应该使用application/javascript
. 这记录在RFC 中。
就浏览器而言,没有区别(至少在 HTTP 标头中)。这只是一个更改,以便 thetext/*
和application/*
MIME 类型组在可能的情况下具有一致的含义。(text/*
MIME 类型旨在用于人类可读的内容,JavaScript 并非旨在直接向人类传达含义)。
请注意,application/javascript
在type
脚本元素的属性中使用将导致脚本在某些较旧的浏览器中被忽略(因为使用未知语言)。要么继续在text/javascript
那里使用,要么完全省略该属性(这在 HTML 5 中是允许的)。
这在 HTTP 标头中不是问题,因为浏览器普遍(据我所知)要么完全忽略脚本的 HTTP 内容类型,要么足够现代以识别application/javascript
.
以 开头的 mime 类型x-
没有标准化。如果是 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
根据 RFC 4329,JavaScript 的正确 MIME 类型应该是application/javascript
. 然而,较旧的 IE 版本对此感到窒息,因为他们期望text/javascript
.
使用 type="application/javascript"
在 HTML5 的情况下,type 属性已过时,您可以将其删除。注意:根据 w3.org,它默认为“text/javascript”,所以我建议添加“application/javascript”而不是删除它。
http://www.w3.org/TR/html5/scripting-1.html#attr-script-type
type 属性给出了脚本的语言或数据的格式。如果该属性存在,则其值必须是有效的 MIME 类型。不得指定字符集参数。如果属性不存在,则使用的默认值是“text/javascript”。
使用“application/javascript”,因为“text/javascript”已过时:
RFC 4329:http ://www.rfc-editor.org/rfc/rfc4329.txt
部署的脚本媒体类型和兼容性
各种未注册的媒体类型已以临时方式用于标记和交换用 ECMAScript 和 JavaScript 编写的程序。这些包括:
+------------------------------------------------- ----+ | 文本/javascript | 文本/ecmascript | | 文本/javascript1.0 | 文本/javascript1.1 | | 文本/javascript1.2 | 文本/javascript1.3 | | 文本/javascript1.4 | 文本/javascript1.5 | | 文本/ jscript | 文本/实时脚本| | 文本/x-javascript | 文本/x-ecmascript | | 应用程序/x-javascript | 应用程序/x-ecmascript | | 应用程序/javascript | 应用程序/ecmascript | +------------------------------------------------- ----+
已知对此类内容使用“文本”顶级类型是有问题的。因此,本文档定义了 text/javascript 和 text/
ecmascript,但将它们标记为“过时”。
不鼓励使用上面部分列出的实验性和未注册媒体类型。
媒体类型,* application/javascript * application/ecmascript
本文档中也定义了这些内容,旨在供通用使用,应改为使用。
本文档定义了
text/javascript、text/ecmascript 和 application/javascript 类型的等效处理要求。
媒体类型应用程序/ecmascript 的使用和支持
远不如
本文档中定义的其他媒体类型广泛。充分利用这一点,本文档
为此类型定义了更严格的处理规则,以促进更具互操作性的
处理。
x-javascript 是实验性的,不要使用它。