Internet Explorerが理解できるように、IEで機能しないjQueryコードtext/javascript
がHTMLドキュメントで使用されるという質問に基づいています。
しかし、いつapplication/javascript
を使用しtext/javascript
ますか?さらに重要なことに、なぜの代わりにそれを使用するのでしょうか?
Internet Explorerが理解できるように、IEで機能しないjQueryコードtext/javascript
がHTMLドキュメントで使用されるという質問に基づいています。
しかし、いつapplication/javascript
を使用しtext/javascript
ますか?さらに重要なことに、なぜの代わりにそれを使用するのでしょうか?
回答:
よると、理論的にはRFC 4329、application/javascript
。
それが想定されている理由はapplication
、型が読み取り可能か実行可能かには関係ありません。これは、汎用charset
パラメーターだけでなく、言語/タイプ自体によって規定されたカスタム文字セット判別メカニズムがあるためです。のサブタイプはtext
、プロキシによって別の文字セットにトランスコードして、文字セットパラメータを変更できる必要があります。これはJavaScriptには当てはまりません。
a。RFCによると、ユーザーエージェントはスクリプトでBOMスニッフィングを行ってタイプを判別する必要があります(ただし、実際にこれを行うブラウザーがあるかどうかはわかりません)。
b。ブラウザーは他の情報(ページのエンコーディングや一部のブラウザーではscript charset
属性など)を使用して文字セットを決定します。そのため、リソースをトランスコードしようとしたプロキシは、ユーザーを破壊します。(もちろん、実際には、とにかく誰もトランスコーディングプロキシを使用することはありませんが、それが目的でした。)
したがって、ファイルの正確なバイトが保存されなければならないまさにそれがバイナリになりた、application
タイプではなく、技術的に文字ベースtext
。
同じ理由で、application/xml
が公式に優先されtext/xml
ます。XMLには独自の帯域内文字セットシグナリングメカニズムがあります。そして誰もapplication
がXMLを無視しています。
text/javascript
そしてtext/xml
公式正しいことではないかもしれないが、そこに誰もが、互換性のために、今日使用するものであり、彼らは正しいことじゃない理由は、実質的に完全に重要でない話しています。
application/javascript
IEをとの互換モードで実行する場合は注意してくださいIE=8
。インラインスクリプトが適切に評価されていないようです。text/javascript
そこでうまくいきます。
X-Content-Type-Options: nosniff
を使用してブラウザーがタイプを解釈しないようにすることをお勧めします。
Server: nginx
非表示またはnginxが送信するものと同じです。まるで、穴を見つけることができる人は、実行しているサーバーを知るために明示的なヘッダーが必要であるかのように...
application
なぜなら.js
-filesは、ユーザーが読みますが実行されるはずです何かしたい、何かではありません。
application / javascriptは使用する正しいタイプですが、IE6-8ではサポートされていないため、text / javascriptのままです。妥当性を気にしない場合(HTML5を除く)、タイプを指定しないでください。