4

swf がページに埋め込まれていて、ブラウザーでローカルにキャッシュされていない場合、swfに対する 2 つの要求がブラウザーによって起動されます。簡単な例を次に示します。

最初のリクエストは expected200 OKを返し、2 番目のリクエストは最初のリクエストが完了した後に をトリガーし304 Not Modified、ファイルがローカルにキャッシュされたことを示します。

この 2番目のリクエストが発生するのはなぜですか?どうすれば回避できますか?

4

3 に答える 3

2

私はそれを理解したと思います。Firefox のバグ レポートをよく読んだところ、インストールした AdBlock Plus が原因のようです。最初に、更新されたページでバグがまだ発生していることを確認し、もう一度再現しました。次に、AdBlock Plus を無効にして、同じテストを試みました。二重の要求はもはや起こっていませんでした。したがって、その拡張機能または同様の拡張機能がインストールされている場合、それが原因である可能性があります。

これは、プラグインが二重にインスタンス化されているというバグ レポートであり、これは AdBlock Plus が原因であるという事実に関するバグ レポートです。

于 2009-07-10T16:14:07.413 に答える
1

これはFirebugを実行することでもトリガーできると思います。Firebugを無効にしているときに、LiveHTTPHeaders(またはCharlesなどの他のhttpスニッフィングアプリ)を使用してブラウザーリクエストを確認してみてください。

于 2009-07-16T22:57:02.050 に答える
1

これが私にも起こることを確認しました。

最初は、これは Firefox のバグによるものだと思いました。このページの FAQ 質問 #16 を参照してください。ただし、彼らが参照しているバグは修正されているようです。

そこで、SWFObject 2.2 を使用して SWF を埋め込んでいる自分の Web サイトをいくつか調べました。二重 GET は発生しませんでした。違いは、私のコードでは<head>、本文ではなくページ内で swfobject.embedSWF を呼び出していることだと思います。SWFObject 2.2 のドキュメントでは、先頭にスクリプトを配置することを推奨しています (これは、SWFObject の古いバージョンとは少し異なります)。

私があなただったら、次のことを試してみます。

  1. google.load("swfobject", "2.2") を削除し、SWFObject スクリプトを直接含めます。
  2. swfobject.embedSWF コードをページの先頭に移動します。
于 2009-07-10T05:57:10.813 に答える