web-dev-qa-db-fra.com

Quand utiliser le type application / javascript de type JavaScript MIME au lieu de text / javascript?

Basé sur la question le code jQuery ne fonctionne pas dans IE , text/javascript est utilisé dans les documents HTML afin qu'Internet Explorer puisse le comprendre.

Mais je me demande, quand utiliseriez-vous application/javascript, et plus important encore, pourquoi voudriez-vous l'utiliser au lieu de text/javascript?

151
Mark Baijens

En théorie, selon RFC 4329 , application/javascript.

La raison pour laquelle il est supposé être application n’a rien à voir avec le type lisible ou exécutable. C'est parce qu'il existe des mécanismes de détermination de jeu de caractères personnalisés, définis par le langage/type lui-même, plutôt que par le paramètre générique charset. Un sous-type de text devrait pouvoir être transcodé par un proxy en un autre jeu de caractères en modifiant le paramètre charset. Ce n'est pas le cas de JavaScript car:

une. la RFC indique que les agents utilisateurs doivent rechercher le script dans le nom de la nomenclature pour déterminer le type (je ne sais pas si les navigateurs le font réellement);

b. les navigateurs utilisent d'autres informations - le codage de la page, y compris et dans certains navigateurs le script charset attribut - pour déterminer le jeu de caractères. Ainsi, tout proxy qui tenterait de transcoder la ressource briserait ses utilisateurs. (Bien entendu, personne n'utilise de toute façon des proxys de transcodage, mais c'était l'intention.)

Par conséquent, les octets exacts du fichier doivent être préservés exactement , ce qui en fait un type binaire application et non pas techniquement text.

Pour la même raison, application/xml _ est officiellement préféré à text/xml: XML possède ses propres mécanismes de signalisation de jeu de caractères dans la bande. Et tout le monde ignore également application pour XML.

text/javascript et text/xml peut ne pas être la bonne chose officielle, mais il y a ce que tout le monde utilise aujourd'hui pour des raisons de compatibilité, et les raisons pour lesquelles ce n'est pas la bonne chose sont pratiquement sans importance.

237
bobince

Le problème avec le type MIME de Javascript est qu'il n'y a pas eu de standard depuis des années. Nous avons maintenant application/javascript en tant que type MIME officiel.

Mais en réalité, le type MIME n'a pas d'importance, car le navigateur peut déterminer le type lui-même. C'est pourquoi les spécifications HTML5 indiquent que le type="text/javascript" n'est plus nécessaire.

17
Harmen

application parce que .js _ Les fichiers ne sont pas quelque chose qu'un utilisateur veut lire, mais quelque chose qui devrait être exécuté.

5
thejh

application-javascript est le type correct à utiliser, mais comme il n'est pas supporté par IE6-8, vous allez être bloqué avec text/javascript. Si vous ne vous souciez pas de la validité (exclu HTML5), ne spécifiez pas de type.

1
Radu