应用程序/ x-javascript和text / javascript内容types之间的区别
这些标题有什么区别?
Content-Type: application/javascript Content-Type: application/x-javascript Content-Type: text/javascript
哪一个最好,为什么?
请不要说他们是相同的 – 如果他们是相同的,就不会有两个。 我知道这两个工作 – 但我想知道其中的差异。
text/javascript
是过时的, application/x-javascript
是实验性的(因此x-
前缀)的过渡时期,直到application/javascript
可以标准化。
你应该使用application/javascript
。 这在RFC中有logging 。
就浏览器而言,没有任何区别(至less在HTTP头文件中)。 这只是一个改变,所以text/*
和application/*
MIMEtypes组在可能的情况下具有一致的含义。 ( text/*
MIMEtypes是为了人类可读的内容而devise的,JavaScript并不是直接向人类传达意义的)。
请注意,在脚本元素的type
属性中使用application/javascript
会导致在一些较旧的浏览器中忽略脚本(因为它是未知的语言)。 要么继续使用text/javascript
,要么完全忽略该属性(在HTML 5中允许)。
这在HTTP头中并不是一个普遍的问题(据我所知)要么完全忽略HTTP内容types的脚本,要么足够现代的识别application/javascript
。
以x-
开头的MIMEtypes不是标准化的。 在JavaScript的情况下,这是过时的。 额外的第二个代码片段
<?Header('Content-Type: text/javascript');?>
需要启用short_open_tags
。 你应该避免它。
<?php Header('Content-Type: text/javascript');?>
但是, 完全正确的MIMEtypes的JavaScript是
application/javascript
http://www.iana.org/assignments/media-types/application/index.html
根据RFC 4329,JavaScript的正确的MIMEtypes应该是application/javascript
。 因为他们期望text/javascript
,所以较旧的IE版本会窒息。
使用type =“application / javascript”
在HTML5的情况下,type属性已经过时,您可以将其删除。 注意:根据w3.org,它默认为“text / javascript”,所以我build议添加“application / javascript”而不是删除它。
http://www.w3.org/TR/html5/scripting-1.html#attr-script-type
type属性给出脚本的语言或数据的格式。 如果该属性存在,则其值必须是有效的MIMEtypes。 charset参数不能被指定。 如果该属性不存在,则使用默认值“text / javascript”。
使用“application / javascript”,因为“text / javascript”已经过时 :
RFC 4329: http ://www.rfc-editor.org/rfc/rfc4329.txt
部署的脚本媒体types和兼容性
已经使用各种未注册的媒体types来标记和交换用ECMAScript和JavaScript编写的程序。 这些包括:
+ ————————————————- —- + | text / javascript | 文本/ 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 | | 应用程序/ x-javascript | application / x-ecmascript | | 应用程序/ JavaScript | 应用程序/ ecmascript | + ————————————————- —- +
已知这种types的内容使用“文本”顶级types是有问题的。 这个文件因此定义文本/ JavaScript和文本/
ecmascript,但标记为“过时”。 使用实验和
未注册的媒体types,如上面部分列出,是不鼓励的。
媒体types,* application/javascript * application/ecmascript
在本文档中也有定义,它们是用于通用的,应该用来代替。
本文件定义了等效的处理要求
键入文本/ JavaScript,文本/ ecmascript,和应用程序/ JavaScript。
使用和支持媒体types的应用程序/ ecmascript是
大大低于其他媒体types的定义
这个文件。 利用这个优势,这个文件定义
更严格的处理规则,以促进更多的互操作性
处理。
x-javascript是实验性的,不要使用它。