2014-01-13 70 views
25

我很好奇關於MIME類型application/javascripttext/javascript的語義。text/javascript vs application/javascript

顯然,一個應該被執行,另一個應該是文本。

我看到application/javascript在查看外部.js加載的標頭時。

HTTP/1.1 200 OK 
Date: Mon, 13 Jan 2014 18:32:58 GMT 
Server: Apache/2.2.22 (Unix) mod_ssl/2.2.22 OpenSSL/0.9.8e-fips-rhel5 
Content-Type: application/javascript 
Content-Length: 856 
keep-alive: timeout=5, max=59 
Via: 1.1 (jetty) 
Accept-Ranges: bytes 

如果application/javascript將執行JavaScript,我們爲什麼不使用

<script type="application/javascript"> 
    // some js code. 
</script> 

,反之亦然,這是爲什麼外部JS負荷不text/javascript

+0

實際上幫了很多 - 我沒有看到這個問題出現在建議中,也沒有看到我的搜索。謝謝! – sircapsalot

+0

回答我的問題然後:頭文件說明application/javascript的唯一原因是服務器使用約定,並遵守RFC-4329。返回'text/javascript'也是_correct_,但將來會過時。 – sircapsalot

回答

35

Per thistext/javascript陳舊。改爲使用application/javascript

text/javascript(過時):JavaScript;在RFC 4329中定義並作廢 ,以便阻止其用於支持應用程序/ javascript的 。但是,在HTML 4 和5中允許使用text/javascript,與application/javascript不同,它具有跨瀏覽器支持。 HTML5中的標籤的「類型」屬性是可選的,並且根本不需要使用它,因爲所有瀏覽器總是假定正確的默認設置(即使在HTML 4中,其規格要求爲 )。

本標準與IE < = 8不兼容。

+0

...但同一行表示雖然它可能已過時,但IE <8不理解「application/javascript」。 – Bergi

+5

Sry,我的意思是IE <= 8還有很多人(不是我)想支持。我只意味着你應該在你的回答中提到存在不兼容的遺留引擎。 – Bergi

相關問題