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
?
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.
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.
application
parce que .js
_ Les fichiers ne sont pas quelque chose qu'un utilisateur veut lire, mais quelque chose qui devrait être exécuté.
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.