webentwicklung-frage-antwort-db.com.de

Wann soll die JavaScript-MIME-Typ-Anwendung / Javascript anstelle von Text / Javascript verwendet werden?

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.

151
Mark Baijens

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.

237
bobince

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.

17
Harmen

application weil .js- Dateien sind nichts, was ein Benutzer lesen möchte, sondern etwas, das ausgeführt werden sollte.

5
thejh

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.

1
Radu