Die ganze Frage passt in den Titel. Und um einen Kontext hinzuzufügen: Ich frage nicht, was nach den Angaben der Spezifikationen am besten ist, sondern was angesichts der Mischung der heutzutage eingesetzten Browser am besten funktioniert.
Einige Datenpunkte:
- Google verwendet
text/javascript
für die JS auf ihrer Homepage. - Google verwendet
text/javascript
in Google Text & Tabellen. - Google verwendet
application/x-javascript
JavaScript-Dateien mit seinem Ajax-Bibliotheksdienst . - Yahoo verwendet
application/x-javascript
, um ihre JS zu dienen. - Yahoo verwendet
application/x-javascript
für das JavaScript, das auf seiner Homepage bereitgestellt wird.
javascript
http
content-type
Avernet
quelle
quelle
Antworten:
text/javascript
ist obsoletapplication/x-javascript
war experimentell, als ich mich entschied, nach…application/javascript
ist der aktuelle offizielle MIME-Typ für JSTrotzdem ignorieren Browser häufig die
content-type
vom Server gesendeten und achten sehr auf dastype
Attribut (und einige erkennen es möglicherweise noch nichtapplication/javascript
).Meine Empfehlung:
type
Attribut in den Skriptelementen wegNB: Die HTML-Spezifikation widerspricht dem MIME-Standard, und es wird versucht , ihn wieder zu ändern ,
text/javascript
damit sich dies in Zukunft ändern kann.quelle
type
Attribut, so ignoriert dasContent-type
richtige Verhalten wäre.application/javascript
, ignorieren sie das Skript. Benutzeragenten sollten den Inhaltstyp nicht ignorieren. Das type-Attribut sagt ihnen, was sie zu erwarten haben. Wenn sie es nicht unterstützen, sollten sie sich nicht die Mühe machen, es anzufordern. Wenn der Server dann sagt, dass es etwas anderes ist, sollten sie eher so weitermachen als das, was der HTML-Code sagt (zumindest laut HTTP sehen Sie sich möglicherweise eine andere Spezifikation an, Sie haben keine Links angegeben).script
Elements verwiesen, mit dem ich verlinkt habe. Meine Lektüre dieses Abschnitts unterscheidet sich von dem, was Sie beschreiben. Es scheint demtype
Attribut eine große Bedeutung beizumessen und erwähnt die Überprüfung nichtContent-Type
, außer zur Bestimmung der Zeichenkodierung. Ich bin damit einverstanden, dass es für den Benutzeragenten sinnvoll erscheint, zu überprüfen, ob der Inhaltstyp den Erwartungen entspricht, aber ich habe in der HTML-Spezifikation nichts gefunden, was dies erfordert oder sogar empfiehlt.In den meisten Situationen macht der vom Server gesendete MIME-Typ keinen praktischen Unterschied. Ich würde mit Anwendung / Javascript gehen , was auch von einem RFC empfohlen wird.
quelle
Wenn Sie auf Ihren Seiten application / javascript für js verwenden, führen IE7 und IE8 Ihr Skript nicht aus! Beschuldigen Sie Microsoft, was Sie wollen, aber wenn Sie möchten, dass die meisten Leute Ihre Seiten ausführen, verwenden Sie Text / Javascript.
quelle
Früher war es so
language="javacript"
. Dann änderte es sich zutype="text/javascript"
. Jetzt ist es sotype="application/javacript"
. Ok, das wird dumm. Einige der älteren Browser erkennen das Neue nichtapplication/javascript
, aber das Älteretext/javascript
. Ich habe vor, dies weiterhin zu verwenden, oder ich werde Stunden meiner Zeit damit verschwenden, JEDE Instanz vontext/javascript
in zu ändernapplication/javascript
.Eines Tages könnte das Gegenteil der Fall sein. Eines Tages könnten die neuesten Browser die alte Technik ablehnen, um streng standardkonform zu sein.
Aber bis Leute, die meine Website besuchen, sich darüber beschweren, dass "seit dem Upgrade meines Browsers etwa 50% Ihrer Website verschwunden sind", habe ich kein Motiv, den Code auf meiner Website zu ändern.
quelle
Hier ist die Antwort 2020 auf diese Frage.
text/javascript
ist der richtige JavaScript-MIME-Typ gemäß dem HTML-Standard , der Folgendes angibt:Und auch :
Es wird daran gearbeitet, diese Realität in einem RFC auf IETF-Ebene widerzuspiegeln: https://datatracker.ietf.org/doc/draft-ietf-dispatch-javascript-mjs/
Jede Behauptung, dass "
text/javascript
veraltet ist", basiert auf RFC 4329, den sowohl der HTML-Standard als auch der oben genannte IETF-Entwurf (dh ein bevorstehender RFC) explizit korrigieren.quelle
Es war "Text / Javascript", aber dies ist veraltet (siehe IANA-Liste ) und jetzt sollte es "Anwendung / Javascript" sein (siehe eine andere IANA-Liste ).
quelle