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 l'utiliseriez-vous application/javascript
et, plus important encore, pourquoi l'utiliseriez-vous à la place text/javascript
?
javascript
mime-types
Mark Baijens
la source
la source
Réponses:
En théorie, selon RFC 4329 ,
application/javascript
.La raison pour laquelle il est censé être
application
n'a rien à voir avec le fait que le type soit 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 simplement par lecharset
paramètre générique . Un sous-type detext
doit pouvoir être transcodé par un proxy vers un autre jeu de caractères, en modifiant le paramètre charset. Ce n'est pas le cas de JavaScript car:une. le RFC dit que les agents utilisateurs devraient faire un reniflage de nomenclature sur le script pour déterminer le type (je ne suis pas sûr que les navigateurs le fassent réellement);
b. les navigateurs utilisent d'autres informations - le codage de la page d'inclusion et dans certains navigateurs l'
script charset
attribut - pour déterminer le jeu de caractères. Ainsi, tout proxy qui tenterait de transcoder la ressource briserait ses utilisateurs. (Bien sûr, en réalité, personne n'utilise jamais de proxy de transcodage de toute façon, mais c'était l'intention.)Par conséquent, les octets exacts du fichier doivent être conservés exactement , ce qui en fait un
application
type binaire et non techniquement basé sur des caractèrestext
.Pour la même raison,
application/xml
est officiellement préféré àtext/xml
: XML a ses propres mécanismes de signalisation de jeu de caractères dans la bande. Et tout le monde ignore également leapplication
XML.text/javascript
ettext/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 ils ne sont pas la bonne chose sont pratiquement sans importance.la source
application/javascript
et IE fonctionnant en mode de compatibilité avecIE=8
. On dirait que les scripts en ligne ne sont pas correctement évalués.text/javascript
fonctionne bien là-bas.X-Content-Type-Options: nosniff
pour empêcher le navigateur d'interpréter le type.Server: nginx
ou tout ce que nginx envoie. Comme si quiconque est capable de trouver un trou avait besoin d'un en-tête explicite pour savoir quel serveur vous exécutez ...Le problème avec le type MIME de Javascript est qu'il n'y a pas de norme depuis des années. Maintenant, nous avons application / javascript comme type MIME officiel.
Mais en fait, le type MIME n'a pas du tout 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.la source
application
parce que.js
-Les fichiers ne sont pas quelque chose qu'un utilisateur veut lire mais quelque chose qui devrait être exécuté.la source
text
, etbinary
commeapplication
«but» dudit type comme «image», ou «document», etc.application / javascript est le type correct à utiliser, mais comme il n'est pas pris en charge par IE6-8, vous allez être bloqué avec du texte / javascript. Si vous ne vous souciez pas de la validité (HTML5 exclu), ne spécifiez simplement pas de type.
la source
application/javascript
.