Javascript MIME Тип - PullRequest
       10

Javascript MIME Тип

150 голосов
/ 05 ноября 2010

Исходя из этого вопроса: Код jQuery не работает в IE

Таким образом, text/javascript используется в документах HTML, чтобы Internet Explorer мог его понять.Но мне интересно, когда бы вы использовали application/javascript, и, что более важно, почему вы бы использовали его вместо text/javascript?

Ответы [ 4 ]

235 голосов
/ 05 ноября 2010

Теоретически, согласно RFC 4329 , application/javascript.

Причина, по которой это должно быть application, не связана с тем, является ли тип читаемым или исполняемым. Это связано с тем, что существуют собственные механизмы определения кодировки, установленные самим языком / типом, а не просто общим параметром charset. Подтип text должен транскодироваться прокси-сервером в другую кодировку, изменяя параметр кодировки. Это не относится к JavaScript, потому что:

а. RFC говорит, что пользовательские агенты должны выполнять BOM-сниффинг сценария, чтобы определить тип (хотя я не уверен, действительно ли какой-либо браузер делает это);

б. браузеры используют другую информацию - включая кодировку страницы и в некоторых браузерах атрибут script charset - для определения кодировки. Таким образом, любой прокси, который пытался перекодировать ресурс, сломал бы его пользователей. (Конечно, в действительности никто никогда не использует транскодирующие прокси в любом случае, но это было намерением.)

Следовательно, точные байты файла должны быть сохранены точно , что делает его двоичным типом application, а не технически основанным на символах text.

По той же причине, application/xml официально предпочтительнее, чем text/xml: XML имеет свои собственные механизмы внутриполосной сигнализации кодировки. И все игнорируют application для XML тоже.

text/javascript и text/xml, возможно, не являются официальной верной вещью, но есть то, что все используют сегодня по соображениям совместимости, и причины, почему они не являются правильными, практически не имеют значения.

17 голосов
/ 05 ноября 2010

Проблема с MIME-типом Javascript заключается в том, что годами не было стандарта. Теперь у нас есть application / javascript в качестве официального типа MIME.

Но на самом деле тип MIME вообще не имеет значения, так как браузер может определить сам тип. Вот почему спецификации HTML5 гласят, что type="text/javascript" больше не требуется.

5 голосов
/ 05 ноября 2010

application потому что .js -Файлы - это не то, что пользователь хочет прочитать, а то, что должно быть выполнено.

1 голос
/ 05 ноября 2010

application-javascript - это правильный тип для использования, но, поскольку он не поддерживается IE6-8, вы застрянете с text / javascript. Если вас не заботит валидность (исключая HTML5), просто не указывайте тип.

...