2009-05-18 9 views
80

Całe pytanie pasuje do tytułu. I dodać trochę kontekstu: nie pytam, co jest najlepsze, zgodnie z tym, co mówią specyfikacje, ale raczej to, co działa najlepiej, biorąc pod uwagę połączenie dzisiejszych przeglądarek.Czy podczas serwowania plików JavaScript lepiej użyć aplikacji/javascript lub application/x-javascript

Niektóre punkty danych:

  • Google wykorzystuje text/javascript dla JS używany na swojej stronie głównej.
  • Google używa text/javascript w Dokumentach Google.
  • Google używa application/x-javascript do wyświetlania plików JavaScript z ich Ajax libraries service.
  • Yahoo używa application/x-javascript do obsługi swojego JS.
  • Yahoo używa application/x-javascript dla JavaScript obsługiwanego na stronie głównej.
+4

Zabawne. Dajesz trzecią alternatywę w swoich przykładach ... I według Tima, obaj wielcy gracze są w błędzie (w odniesieniu do standardów), co prawdopodobnie oznacza tylko, że przeglądarki są tolerancyjne (nie ma tu wielkich wiadomości) i to może nie mieć znaczenia. – PhiLho

+1

możliwe dupe: [typ MIME Javascript] (http://stackoverflow.com/questions/4101394/javascript-mime-type) – Bergi

Odpowiedz

99
  • text/javascript jest przestarzała
  • application/x-javascript był eksperymentalny przy podejmowaniu decyzji, aby przejść do ...
  • application/javascript jest obecny urzędnik typ MIME dla JS

To powiedziawszy, przeglądarek często ignorują content-type wysłany przez serwer i zwróć szczególną uwagę na atrybut type (a niektóre mogą jeszcze nie rozpoznać application/javascript).

Moja rekomendacja:

  • Wykorzystanie aplikacji/javascript na serwerze
  • używać HTML 5 i pominąć atrybut z elementów skryptowych
+3

To pytanie sprzed kilku miesięcy mówi dokładnie odwrotnie. Ktoś się pomylił :) "Po prawej stronie Kelly, przeglądarki zwykle ufają typowi MIME wysłanemu z nagłówkami odpowiedzi nad atrybutem typu znacznika skryptu" http://stackoverflow.com/questions/189850/what-is- the-javascript-mime-type-what-belongs-in-the-type-of-a-script/189877 # 189877 – Marco

+0

Nie sądzę, że ta odpowiedź jest poprawna. Zarówno Google, jak i Yahoo nie korzystają z tej metody, a ja ufam im nad zielonym znacznikiem wyboru. – cmeub

+6

O nie! Duże, monolityczne, powolne organizacje muszą mieć rację! Specyfikacja musi być błędna! Narghh. Będę nadal ufał specyfikacji i mojemu własnemu doświadczeniu w stosunku do dużych (wolnych) firm, nawet jeśli jeden z nich zatrudnił mnie. – Quentin

13

W większości sytuacji typ MIME wysyłany przez serwer nie ma praktycznej różnicy. Poszedłbym z application/javascript, który jest również zalecany przez RFC.

+11

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

6

Został "tekst/javascript", ale jest to przestarzałe (patrz IANA List), a teraz powinno być "application/javascript" (patrz another IANA List).

5

type Jeśli zdecydujesz się korzystać z aplikacji/javascript dla js na twoich stronach, IE7 i IE8 nie uruchomią twojego skryptu! Microsoft winien wszystko, co chcesz, ale jeśli chcesz, aby większość osób uruchamiała twoje strony, użyj text/javascript.

+2

Kiedy mówisz, że "application/javascript" nie działa, masz na myśli, czy jest ustawiony jako typ zawartości w odpowiedzi HTTP lub jako "typ" atrybutu skryptu? Pierwotne pytanie dotyczyło typu zawartości w odpowiedziach HTTP. W oparciu o inne odpowiedzi wygląda na to, że tylko wartość atrybutu "typ" na znacznikach skryptów ma znaczenie w IE. –

5

Kiedyś był to language="javacript". Następnie zmieniono na type="text/javascript". Teraz jest type="application/javacript". Ok, robi się głupio. Niektóre ze starszych przeglądarek nie rozpoznają nowego application/javascript, ale nadal rozpoznają starszą wersję: text/javascript. Mam zamiar nadal z tego korzystać, inaczej będę tracić wiele godzin próbując zmienić KAŻDĄ instancję text/javascript w application/javascript.
Pewnego dnia przeciwieństwo może być prawdą. Pewnego dnia najnowsze przeglądarki mogą odrzucić starą technikę, aby być ściśle zgodną ze standardem.
Ale dopóki ludzie przeglądający moją witrynę nie zaczną narzekać, że "od czasu aktualizacji przeglądarki zniknęło około 50% twojej witryny", nie mam motywu, aby zmienić kod na mojej stronie.

Powiązane problemy