swf がページに埋め込まれていて、ブラウザーでローカルにキャッシュされていない場合、swfに対する 2 つの要求がブラウザーによって起動されます。簡単な例を次に示します。
最初のリクエストは expected200 OK
を返し、2 番目のリクエストは最初のリクエストが完了した後に をトリガーし304 Not Modified
、ファイルがローカルにキャッシュされたことを示します。
この 2番目のリクエストが発生するのはなぜですか?どうすれば回避できますか?
私はそれを理解したと思います。Firefox のバグ レポートをよく読んだところ、インストールした AdBlock Plus が原因のようです。最初に、更新されたページでバグがまだ発生していることを確認し、もう一度再現しました。次に、AdBlock Plus を無効にして、同じテストを試みました。二重の要求はもはや起こっていませんでした。したがって、その拡張機能または同様の拡張機能がインストールされている場合、それが原因である可能性があります。
これは、プラグインが二重にインスタンス化されているというバグ レポートであり、これは AdBlock Plus が原因であるという事実に関するバグ レポートです。
これはFirebugを実行することでもトリガーできると思います。Firebugを無効にしているときに、LiveHTTPHeaders(またはCharlesなどの他のhttpスニッフィングアプリ)を使用してブラウザーリクエストを確認してみてください。
これが私にも起こることを確認しました。
最初は、これは Firefox のバグによるものだと思いました。このページの FAQ 質問 #16 を参照してください。ただし、彼らが参照しているバグは修正されているようです。
そこで、SWFObject 2.2 を使用して SWF を埋め込んでいる自分の Web サイトをいくつか調べました。二重 GET は発生しませんでした。違いは、私のコードでは<head>
、本文ではなくページ内で swfobject.embedSWF を呼び出していることだと思います。SWFObject 2.2 のドキュメントでは、先頭にスクリプトを配置することを推奨しています (これは、SWFObject の古いバージョンとは少し異なります)。
私があなただったら、次のことを試してみます。