Basierend auf der Frage jQuery-Code funktioniert nicht im IE wird text/javascript
In HTML-Dokumenten verwendet, damit Internet Explorer dies verstehen kann.
Aber ich frage mich, wann Sie application/javascript
Verwenden würden und was noch wichtiger ist, warum Sie es anstelle von text/javascript
Verwenden würden.
Theoretisch laut RFC 4329 , application/javascript
.
Der Grund, warum es application
sein soll, hat nichts damit zu tun, ob der Typ lesbar oder ausführbar ist. Dies liegt daran, dass es benutzerdefinierte Zeichensatz-Bestimmungsmechanismen gibt, die von der Sprache/dem Typ selbst festgelegt werden, und nicht nur vom generischen charset
-Parameter. Ein Subtyp von text
sollte von einem Proxy in einen anderen Zeichensatz umcodiert werden können, indem der Zeichensatzparameter geändert wird. Dies gilt nicht für JavaScript, weil:
ein. Laut RFC sollten Benutzeragenten das Skript anhand von Stücklisten durchsuchen, um den Typ zu bestimmen (ich bin mir jedoch nicht sicher, ob ein Browser dies tatsächlich tut).
b. Browser verwenden andere Informationen - die Codierung der Einschlussseite und in einigen Browsern das Attribut script charset
-, um den Zeichensatz zu bestimmen. Jeder Proxy, der versucht hat, die Ressource zu transkodieren, würde seine Benutzer beschädigen. (Natürlich verwendet in Wirklichkeit sowieso niemand Proxys, aber das war die Absicht.)
Daher müssen die genauen Bytes der Datei genau erhalten bleiben , wodurch es sich um einen binären application
-Typ handelt und nicht um einen zeichenbasierten text
.
Aus dem gleichen Grund wird application/xml
Offiziell text/xml
Vorgezogen: XML verfügt über eigene In-Band-Zeichensatz-Signalisierungsmechanismen. Und jeder ignoriert application
auch für XML.
text/javascript
Und text/xml
Sind möglicherweise nicht die offiziellen Richtigen Dinge, aber es gibt Dinge, die heutzutage jeder aus Kompatibilitätsgründen verwendet, und die Gründe, warum sie nicht das Richtige sind, sind praktisch völlig unwichtig.
Das Problem mit dem MIME-Typ von Javascript ist, dass es seit Jahren keinen Standard mehr gibt. Jetzt haben wir application/javascript als offiziellen MIME-Typ.
Tatsächlich spielt der MIME-Typ jedoch keine Rolle, da der Browser den Typ selbst bestimmen kann. Aus diesem Grund besagen die HTML5-Spezifikationen, dass das type="text/javascript"
wird nicht mehr benötigt.
application
weil .js
- Dateien sind nichts, was ein Benutzer lesen möchte, sondern etwas, das ausgeführt werden sollte.
application-javascript ist der richtige Typ, aber da es von IE6-8 nicht unterstützt wird, bleiben Sie bei Text/Javascript hängen. Wenn Sie sich nicht um die Gültigkeit kümmern (HTML5 ausgeschlossen), geben Sie einfach keinen Typ an.