Javascript Type MIME
Basé sur cette question: jQuery code ne fonctionne pas sous IE
Donc text/javascript
est utilisé dans les documents HTML Internet Explorer peut le comprendre. Mais je me demandais, quand vous utilisez application/javascript
, et plus important encore, pourquoi voudriez-vous utiliser à la place de text/javascript
?
- possible dupe/explication: stackoverflow.com/questions/876561/...
- Voir aussi stackoverflow.com/questions/2325571/...
- double possible de qu'est-Ce que le Javascript Type MIME? Ce qui appartient à l'attribut type de la balise script?
- Double Possible de au moment de servir, les fichiers JavaScript, est-il préférable d'utiliser l'application/javascript ou de l'application/x-javascript
Vous devez vous connecter pour publier un commentaire.
En théorie, selon RFC 4329,
application/javascript
.La raison pour laquelle il est censé être
application
n'est pas quelque chose à voir avec le fait que le type est lisible et exécutable. C'est parce qu'il y a personnalisé charset-détermination des mécanismes prévus par la langue ou le type lui-même, plutôt que de simplement le génériquecharset
paramètre. Un sous-type detext
doit être capable d'être transcodé par une procuration à un autre jeu de caractères, changer le jeu de caractères du paramètre. Ce n'est pas vrai de JavaScript car:un. le RFC dit des agents utilisateurs devraient faire BOM-sniffing sur le script afin de déterminer le type (je ne suis pas sûr si l'un des navigateurs fait de faire cela);
b. les navigateurs utilisent d'autres informations, y compris la page d'encodage et de certains navigateurs le
script charset
attribut à déterminer le jeu de caractères. Si le proxy, qui a essayé de transcoder les ressources de casser ses utilisateurs. (Évidemment, dans la réalité personne n'a jamais utilise le transcodage de procurations de toute façon, mais c'était l'intention.)Donc l'exact octets du fichier doit être préservée exactement, ce qui en fait un binaire
application
type et n'est pas techniquement basée sur le caractèretext
.Pour la même raison,
application/xml
est officiellement préféré surtext/xml
: XML possède son propre bande charset mécanismes de signalisation. Et tout le monde ignoreapplication
pour XML, trop.text/javascript
ettext/xml
peut-être pas le Droit officiel de Chose, 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 est, pratiquement parlant, complètement sans importance.application/javascript
et IE en cours d'exécution sur le mode de compatibilité avecIE=8
. Me semble que si inline scripts ne sont pas correctement évalués.text/javascript
fonctionne très bien là.X-Content-Type-Options: nosniff
pour empêcher le navigateur d'interpréter le type.Le problème avec le Javascript du type MIME est qu'il n'a pas été une norme pour les années. Maintenant, nous avons application/javascript officiel, type MIME.
Mais en fait, le type MIME n'est pas grave du tout, que le navigateur peut déterminer le type lui-même. C'est pourquoi les spécifications HTML5 état que le
type="text/javascript"
n'est plus nécessaire.application
parce que.js
-les Fichiers ne sont pas quelque chose d'un utilisateur veut lire, mais quelque chose qui devrait exécutée.text
, etbinary
commeapplication
-OU la "raison", a déclaré un type comme dans "image", ou "document", etc.application javascript est le type correct à utiliser, mais puisqu'il n'est pas pris en charge par IE6-8, vous allez être coincé avec text/javascript. Si vous ne se soucient pas de la validité (HTML5 exclus) puis il suffit de ne pas spécifier un type.
application/javascript
.