Basierend auf der Frage, dass jQuery-Code im IE nicht funktioniert , text/javascript
wird er in HTML-Dokumenten verwendet, damit Internet Explorer ihn verstehen kann.
Aber ich frage mich, wann Sie es verwenden würden application/javascript
und was noch wichtiger ist, warum Sie es anstelle von verwenden würden text/javascript
.
javascript
mime-types
Mark Baijens
quelle
quelle
Antworten:
Theoretisch nach RFC 4329 ,
application/javascript
.Der Grund, warum es sein soll,
application
hat nichts damit zu tun, ob der Typ lesbar oder ausführbar ist. Dies liegt daran, dass es benutzerdefinierte Zeichensatzbestimmungsmechanismen gibt, die von der Sprache / dem Typ selbst festgelegt werden und nicht nur vom generischencharset
Parameter. Ein Subtyp vontext
sollte von einem Proxy in einen anderen Zeichensatz transkodiert werden können, wobei der Zeichensatzparameter geändert wird. Dies gilt nicht für JavaScript, weil:ein. Der RFC sagt, dass Benutzeragenten Stücklisten-Sniffing für das Skript durchführen sollten, um den Typ zu bestimmen (ich bin mir nicht sicher, ob dies tatsächlich von Browsern durchgeführt wird).
b. Browser verwenden andere Informationen - die Codierung der eingeschlossenen Seite und in einigen Browsern das
script charset
Attribut -, 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 Transcodierungs-Proxys, aber das war die Absicht.)Deshalb ist die genaue Bytes der Datei muss erhalten bleiben genau , was es zu einer binären macht
application
Art und technisch nicht zeichenbasiertetext
.Aus dem gleichen Grund wird
application/xml
es offiziell vorgezogentext/xml
: XML verfügt über eigene In-Band-Zeichensatz-Signalisierungsmechanismen. Und jeder ignoriert auchapplication
XML.text/javascript
undtext/xml
vielleicht nicht das offizielle Richtige, aber es gibt das, was heute jeder aus Kompatibilitätsgründen verwendet, und die Gründe, warum sie nicht das Richtige sind, sind praktisch völlig unwichtig.quelle
application/javascript
und IE läuft im Kompatibilitätsmodus mitIE=8
. Scheint, als ob Inline-Skripte nicht richtig ausgewertet werden.text/javascript
funktioniert dort gut.X-Content-Type-Options: nosniff
, um zu verhindern, dass der Browser den Typ interpretiert.Server: nginx
oder was auch immer Nginx sendet. Als ob jeder, der in der Lage ist, ein Loch zu finden, einen expliziten Header benötigt, um zu wissen, welchen Server Sie betreiben ...Das Problem mit dem MIME-Typ von Javascript ist, dass es seit Jahren keinen Standard mehr gibt. Jetzt haben wir Anwendung / 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 geben die HTML5-Spezifikationen an, dass das
type="text/javascript"
nicht mehr benötigt wird.quelle
application
weil.js
-Dateien nicht etwas sind, das ein Benutzer lesen möchte, sondern etwas, das ausgeführt werden sollte.quelle
text
undbinary
entwederapplication
-oder den "Zweck" dieses Typs wie in "Bild" oder "Dokument" usw. betrachten sollteapplication / javascript ist der richtige Typ, aber da er von IE6-8 nicht unterstützt wird, bleiben Sie bei text / javascript hängen. Wenn Sie sich nicht für die Gültigkeit interessieren (HTML5 ausgeschlossen), geben Sie einfach keinen Typ an.
quelle
application/javascript
.