Com base na pergunta de código jQuery não funciona no IE , text/javascript
é utilizado em documentos HTML para que o Internet Explorer pode compreendê-lo.
Mas eu estou pensando, quando você usaria application/javascript
, e mais importante, por que você usaria em vez de text/javascript
?
javascript
mime-types
Mark Baijens
fonte
fonte
Respostas:
Em teoria, de acordo com a RFC 4329 ,
application/javascript
.O motivo pelo qual deveria ser
application
não tem nada a ver com o tipo ser legível ou executável. Isso ocorre porque existem mecanismos personalizados de determinação de charset estabelecidos pelo próprio idioma / tipo, e não apenas pelocharset
parâmetro genérico . Um subtipo detext
deve ser capaz de ser transcodificado por um proxy para outro charset, alterando o parâmetro charset. Isso não se aplica ao JavaScript porque:uma. o RFC diz que os agentes do usuário devem estar analisando o BOM no script para determinar o tipo (não tenho certeza se algum navegador realmente faz isso);
b. os navegadores usam outras informações - a codificação da página de inclusão e, em alguns navegadores, o
script charset
atributo - para determinar o conjunto de caracteres. Portanto, qualquer proxy que tentasse transcodificar o recurso quebraria seus usuários. (É claro que, na realidade, ninguém nunca usa proxies de transcodificação, mas essa era a intenção.)Portanto, os bytes exatos do arquivo devem ser preservados exatamente , o que o torna um
application
tipo binário e não tecnicamente baseado em caracterestext
.Pelo mesmo motivo,
application/xml
é oficialmente preferidotext/xml
: o XML possui seus próprios mecanismos de sinalização de conjunto de caracteres em banda. E todo mundo ignora oapplication
XML também.text/javascript
etext/xml
pode não ser a coisa certa oficial, mas há o que todos usam hoje por motivos de compatibilidade, e os motivos pelos quais eles não são a coisa certa estão praticamente falando completamente sem importância.fonte
application/javascript
IE executando no modo de compatibilidade comIE=8
. Parece que os scripts embutidos não foram avaliados corretamente.text/javascript
funciona bem lá.X-Content-Type-Options: nosniff
para impedir que o navegador interprete o tipo.Server: nginx
ou o que o nginx envia. Como se quem é capaz de encontrar um buraco precisa de cabeçalho explícita para saber o que de servidor que executar ...O problema com o tipo MIME do Javascript é que não há um padrão há anos. Agora temos application / javascript como um tipo oficial de MIME.
Mas, na verdade, o tipo MIME não importa, pois o navegador pode determinar o tipo em si. É por isso que as especificações do HTML5 afirmam que
type="text/javascript"
não são mais necessárias.fonte
application
porque.js
-Files não é algo que um usuário deseja ler, mas algo que deve ser executado.fonte
text
, ebinary
como querapplication
-OR o "propósito" do referido tipo, como em "imagem" ou "documento", etc.application / javascript é o tipo correto de usar, mas como não é suportado pelo IE6-8, você ficará preso ao texto / javascript. Se você não se importa com a validade (HTML5 excluído), apenas não especifique um tipo.
fonte
application/javascript
.