0

次のようなコードがあります。

$(window).load(function(){
    sendAGetRequest();
}

定期的に、本番環境で GET リクエストが複数回送信されます。これは、パケット スニファーを使用して確認できます。

これはローカルでは再現できません。

ここには同様の質問がいくつかありますが、あまり役に立たないようです。

私が知りたいのは:

  • 関数 sendAGetRequest() が複数回呼び出されるのはなぜですか?
  • これがローカルではなく本番環境でのみ発生する原因は何ですか?

に問題がある$(window).loadと思われ、これを に変更することを検討してい$(document).readyます。それは良い電話ですか?私が言ったように、私は問題をローカルで再現することはできず、実際に問題を解決できるかどうかを知らずに何かをライブにアップロードしたくありません.

4

2 に答える 2

0

$(window).loadは、画像を含めてページが完全に読み込まれた場合にのみトリガーされます。$(document).readyは、DOM全体の準備ができたときにトリガーされます。これは、リソース全体がロードされるのを待つ必要がないため、このような要求をトリガーするためのはるかに優れたポイントです。関数が複数回呼び出される理由はわかりませんが、理論的には呼び出されるべきではありません。

于 2011-08-09T15:08:16.647 に答える
0

load()イベントハンドラーをアタッチする関数が複数回呼び出されるというイベントを想像します。を呼び出すたびload()に、別の関数ハンドラーがアタッチされ、load イベントが発生したときにそれらのハンドラーがすべて呼び出されます。

を使用document.readyするのは良い呼び出しですが、上記が当てはまる場合は役に立ちません。

于 2011-08-09T15:10:28.663 に答える