2009-05-18 5 views
80

L'intera domanda rientra nel titolo. E per aggiungere un po 'di contesto: non sto chiedendo quale sia il migliore in base a ciò che dicono le specifiche, ma piuttosto ciò che funziona meglio dato il mix di browser utilizzati al giorno d'oggi.Quando serve i file JavaScript, è meglio usare l'applicazione/javascript o application/x-javascript

Alcuni punti di dati:

  • Google utilizza text/javascript per il JS utilizzato sulla loro home page.
  • Google utilizza text/javascript su Google Documenti.
  • Google utilizza application/x-javascript per servire file JavaScript con il loro Ajax libraries service.
  • Yahoo utilizza application/x-javascript per servire il proprio JS.
  • Yahoo utilizza application/x-javascript per il codice JavaScript pubblicato nella loro home page.
+4

Divertente. Dai una terza alternativa ai tuoi esempi ... E secondo Tim, entrambi i grandi giocatori hanno torto (rispetto agli standard), il che probabilmente significa solo che i browser sono tolleranti (non ci sono grandi novità qui) e potrebbe non avere importanza. – PhiLho

+1

dupe possibili: [Tipo MIME Javascript] (http://stackoverflow.com/questions/4101394/javascript-mime-type) – Bergi

risposta

99
  • text/javascript è obsoleto
  • application/x-javascript era sperimentale pur decidendo di passare a ...
  • application/javascript è il tipo MIME ufficiale corrente JS

Detto questo, i browser spesso ignorano la content-type inviato dal server e prestare molta attenzione all'attributo type (e alcuni potrebbero non riconoscere ancora application/javascript).

La mia raccomandazione:

  • Usa application/javascript sul server
  • Usa HTML 5 e omettere l'attributo type da elementi script
+3

la domanda di alcuni mesi fa dice esattamente l'opposto. Qualcuno si sbaglia :) "Kelly ha ragione, i browser tendono a fidarsi del tipo MIME inviato con le intestazioni di risposta rispetto all'attributo type del tag script" http://stackoverflow.com/questions/189850/what-is- the-javascript-mime-type-what-appartiene-in-the-type-attribute-of-a-script/189877 # 189877 – Marco

+0

Non credo che questa risposta sia corretta. Sia Google che Yahoo non usano questo metodo e io tendo a fidarmi di loro su un segno di spunta verde. – cmeub

+6

Oh no! Le organizzazioni grandi, monolitiche e lente devono avere ragione! Le specifiche devono essere sbagliate! Narghh. Continuerò a fidarmi delle specifiche e della mia esperienza personale rispetto alle grandi (lente) aziende, anche se una di queste era solita assumermi. – Quentin

13

Nella maggior parte dei casi, il tipo di mime che invia il server non fa alcuna differenza pratica. Vorrei andare con application/javascript, che è anche raccomandato da un RFC.

+11

è rfc 4329: http://www.ietf.org/rfc/rfc4329.txt – Christoph

6

E 'stato "text/javascript" ma questo è obsoleto (vedere lo IANA List) e ora dovrebbe essere "application/javascript" (vedere another IANA List).

5

Se si sceglie di utilizzare application/javascript per js nelle tue pagine, IE7 e IE8 non eseguiranno il tuo script! Dai la colpa a Microsoft tutto ciò che vuoi, ma se vuoi che la maggior parte delle persone esegua le tue pagine usa text/javascript.

+2

Quando dici che "application/javascript" non funzionerà, vuoi dire se questo è impostato come il tipo di contenuto sulla risposta HTTP o come attributo "type" di un tag script? La domanda originale era sul tipo di contenuto sulle risposte HTTP. Sulla base di altre risposte sembra che solo il valore dell'attributo "tipo" sui tag di script possa fare la differenza in entrambi i casi in IE. –

5

Era language="javacript". Quindi è stato modificato in type="text/javascript". Ora è type="application/javacript". Ok questo sta diventando stupido. Alcuni dei vecchi browser non riconoscono il nuovo application/javascript, ma riconoscono ancora il precedente text/javascript. Ho intenzione di continuare a utilizzare questo, altrimenti sprecherò ore del mio tempo cercando di cambiare OGNI istanza di text/javascript in application/javascript.
Ora un giorno potrebbe essere vero il contrario. Un giorno i nuovi browser potrebbero rifiutare la vecchia tecnica per essere rigorosamente conformi allo standard.
Ma fino a quando le persone che visitano il mio sito Web iniziano a lamentarsi del fatto che "da quando ho aggiornato il mio browser, circa il 50% del tuo sito web è scomparso", non ho motivo di cambiare il codice nel mio sito web.