La différence entre application/x-javascript et text/javascript types de contenu
Quelle est la différence entre ces en-têtes?
Content-Type: application/javascript
Content-Type: application/x-javascript
Content-Type: text/javascript
Lequel est le meilleur et pourquoi?
S'il vous plaît ne dis pas qu'ils sont identiques s'ils étaient identiques, il n'aurait pas été de trois d'entre eux. Je sais à la fois le travail - mais je voudrais savoir la différence.
- La différence est également un classique de la raison pour laquelle vos scripts ne sont pas compressés. Assurez-vous que vous avez une entrée dans httpCompression pour le type réel vous servir et de noter que IIS Express comprime seulement application/x-javascript et le texte/* par défaut.
- NB: UNE liste complète des "javascript types mime" peut être trouvé ici: html.spec.whatwg.org/multipage/.... c'est la liste de valeurs qu'un navigateur doit permettre une
script
de la balisetype
attribut lorsque lenosniff
directive est spécifiée. developer.mozilla.org/en-US/docs/Web/HTTP/Headers/...
Vous devez vous connecter pour publier un commentaire.
text/javascript
est obsolète, etapplication/x-javascript
était expérimentale (d'où lex-
préfixe) pour une période de transition jusqu'à ce queapplication/javascript
pourrait être standardisé.Vous devez utiliser
application/javascript
. Ceci est documenté dans le RFC.En ce qui concerne les navigateurs sont concernés, il n'y a pas de différence (au moins dans les en-têtes HTTP). C'était juste un changement de sorte que la
text/*
etapplication/*
type MIME groupes avait une constante sens où c'est possible. (text/*
Types MIME sont destinés lisible par l'homme de contenu, JavaScript n'est pas conçu pour transmettre directement un sens pour l'homme).Notez que l'utilisation de
application/javascript
dans letype
attribut d'un élément script va provoquer le script pour être ignoré (comme dans une langue inconnue) dans certains navigateurs plus anciens. Soit continuer à utilisertext/javascript
il ou omettre l'attribut entièrement (ce qui est autorisé en HTML 5).Ce n'est pas un problème d'en-têtes HTTP, comme les navigateurs universellement (pour autant que je suis au courant), soit ignorer le HTTP content-type de scripts entièrement, ou modernes sont capables de reconnaître les
application/javascript
.type
attribut sur un<script>
élément. Vous ne pouvez pas omettre leContent-Type
en-tête HTTP ... jamais (si vous ne spécifiez pas en PHP, alors PHP par défauttext/html
qui est très mauvais).text/
et contrairement à la JS personne n'a souciait assez pour faire le travail pour obtenir, elle a changé.application/x-javascript
est affecté, puis interne diff refuse de montrer les diff, se plaignant d'une entrée binaire. Voulez-vous suggérer d'utilisertext/javascript
pour SVN?text/javascript
est obsolète etapplication/x-javascript
était expérimentale). Pire, il a laissé le début de la réponse incohérente, avec un bloc en disanttext/javascript
juste traîner irrelevantly au sommet de la réponse pour aucune raison évidente.@echo off
for /r . %%X in (*.js) do (
svn propset svn:mime-type text/javascript "%%X"
)
qui lorsqu'elles sont exécutées, changer le type mime de tous les fichiers JS dans votre référentiel text/javascript. Ensuite, vous aurez à engager la JS fichiers SVN avec le nouveau type mime.Content-Type
ou la relation à l'adresse HTTP. En outre, son statut dit: "Il ne spécifie pas un standard Internet de toute nature.". En fait, je n'ai pas trouvé tout RFC est en disant: "vous devez utiliser ceci ou cela", dans le contexte de javascript etContent-Type
. D'autre part, certains Rfc et MDN dit queapplication/*
est prévu pour tout type de données binaires ettext/*
pour le texte qui est "théoriquement lisible par l'homme"Content-Type: text/javascript
mais pas avecapplication/javascript
. CSS est aussi un morceau de logiciel et pas conçu pour être lu par les utilisateurs, mais il esttext/css
.mime-types de départ avec
x-
ne sont pas standardisés. Dans le cas du javascript, il est un peu obsolète.Supplémentaire de la deuxième extrait de code
nécessite
short_open_tags
à être activé. vous devriez éviter.Cependant, la complètement corriger mime-type pour le javascript est
http://www.iana.org/assignments/media-types/application/index.html
Selon la RFC 4329 le bon type MIME pour le JavaScript doit être
application/javascript
. Cependant, les anciennes versions IE étranglement sur cette car ils attendent detext/javascript
.type
attribut dit (et dans le HTML 5 brouillons que l'attribut peut être omis pour le JavaScript).Utiliser type="application/javascript"
En cas de HTML5, l'attribut type est obsolète, vous pouvez le supprimer. Remarque: la valeur par défaut est "text/javascript" selon w3.org, je vous suggère d'ajouter "application/javascript" au lieu de la supprimer.
Utiliser "application/javascript", parce que "text/javascript" est obsolète:
x-javascript est expérimental, ne l'utilisez pas.