Ao servir arquivos JavaScript, é melhor usar o aplicativo / javascript ou application / x-javascript

Toda a questão se encheckbox no título. E para adicionar algum contexto: Eu não estou perguntando o que é melhor de acordo com o que as especificações estão dizendo, mas sim o que funciona melhor com o mix de navegadores implantados atualmente.

Alguns pontos de dados:

  • O Google usa text/javascript para o JS usado em sua home page.
  • O Google usa text/javascript no Google Docs.
  • O Google usa application/x-javascript para fornecer arquivos JavaScript com o serviço de bibliotecas Ajax .
  • Yahoo usa application/x-javascript para servir o seu JS.
  • Yahoo usa application/x-javascript para o JavaScript exibido em sua home page.

    • text/javascript é obsoleto
    • application/x-javascript foi experimental ao decidir mudar para…
    • application/javascript é o tipo MIME oficial atual para JS

    Dito isso, os navegadores geralmente ignoram o content-type enviado pelo servidor e prestam muita atenção ao atributo type (e alguns podem ainda não reconhecer o application/javascript ).

    Minha recomendação:

    • Use o aplicativo / javascript no servidor
    • Use HTML 5 e omita o atributo type dos elementos de script

    Na maioria das situações, o tipo de mime que o servidor envia não faz diferença prática. Eu iria com o aplicativo / javascript , que também é recomendado por um RFC.

    Se você optar por usar o aplicativo / javascript para js em suas páginas, o IE7 e o IE8 não executarão seu script! Culpa Microsoft tudo o que você quiser, mas se você quiser que a maioria das pessoas execute suas páginas use text / javascript.

    Tem sido “text / javascript”, mas isso é obsoleto (veja a lista da IANA ) e agora deve ser “application / javascript” (veja outra lista da IANA ).

    Ela costumava ser language="javacript" . Então mudou para type="text/javascript" . Agora é type="application/javacript" . Ok isso está ficando burro. Alguns dos navegadores mais antigos não reconhecem o novo application/javascript , mas ainda reconhecem o text/javascript mais text/javascript . Eu pretendo continuar usando isso, ou então eu vou perder horas do meu tempo tentando alterar todas as instâncias de text/javascript em application/javascript .
    Agora, algum dia o oposto pode ser verdade. Algum dia, os navegadores mais recentes podem rejeitar a técnica antiga para serem compatíveis com o padrão estritamente.
    Mas até que as pessoas que visualizam o meu site comecem a reclamar que “desde a atualização do meu navegador, cerca de 50% do seu site desapareceu”, não tenho motivos para alterar o código no meu site.