12

Web ページで奇妙な動作が見られます... 通常のスクリプト タグを使用して jQuery (および jQuery UI) を含めました。ページが読み込まれると、ファイルが読み込まれていることがわかります (ファイルには遠い将来の Expires ヘッダーがあるため、ローカル ブラウザーのキャッシュから)。

ただし、jQuery 自体が新しいネットワーク要求を開始して、ファイルをダウンロードさせる (つまり、キャッシュされたバージョンを使用しない) ランダムなパラメーター値を含めて、自分自身を再度フェッチするようです。

Chrome のネットワーク タブのスクリーンショット:

jQuery の読み込み自体... ?

これは非常に奇妙です...ここで何が起こっているのですか?

更新:この動作をトリガーしているコードは次のとおりです。

   $(window).load(function() {
     $("#t20ContentRightWrapper").toggle("slide", { direction: "right" }, 400);
   });

代わりにこれに変更すると、「二重読み込み」がなくなります。

   $(window).load(function() {
       $("#t20ContentRightWrapper").toggle("fade", 400);
   });

したがって、基本的に、「スライド」アニメーションを使用すると、jQuery と jQuery UI が追加のネットワーク リクエストでリロードされますが、「フェード」アニメーションを使用するとリロードされません。

「スライド」アニメーションを使用したいので、ここで何が起こっているのかを知る必要があります... !

更新 2:これは、Chrome で「イニシエーター」スクリプトにカーソルを合わせたときのコール スタックを示すスクリーンショットです。

詳細

4

7 に答える 7

0

jQuery のドキュメントには、.load()メソッドに関する次の警告があります。

Ajax モジュールには、.load() という名前のメソッドもあります。どちらが起動されるかは、渡された引数のセットによって異なります。

あいまいさを排除するために、代わりにこれを試すことができます

$(window).on("load", function(){
    $("#t20ContentRightWrapper").toggle("slide", { direction: "right" }, 400);
});
于 2013-05-29T20:47:52.587 に答える
0

あなたはslideToggle()を使ってみましたか、おそらく次のようなものです:

 $(window).load(function() {
     $("#t20ContentRightWrapper").slideToggle();
   });

とにかく、slideToggleモーションエフェクトのデフォルトは400です

于 2013-05-29T20:33:54.187 に答える
0

load 関数は、あなたが期待していると私が思うものとは異なることを意味します:

この方法は、サーバーからデータを取得する最も簡単な方法です。$.get(url, data, success) とほぼ同じですが、グローバル関数ではなくメソッドであり、暗黙的なコールバック関数がある点が異なります。成功した応答が検出されると (つまり、textStatus が "success" または "notmodified" の場合)、.load() は一致した要素の HTML コンテンツを返されたデータに設定します。これは、メソッドのほとんどの使用が非常に簡単であることを意味します。

代わりにこれを使用したいかもしれません:

`

$(function() {
     $("#t20ContentRightWrapper").toggle("slide", { direction: "right" }, 400);
   });

`

于 2013-08-22T05:18:09.313 に答える
0

#t20ContentRightWrapper の内容を単純な段落に置き換えてみましたか? これで問題が解決した場合は、コンテンツの一部を取り出して、問題のある部分を見つけることができます。また、同じ ID を持つ 2 つの要素があるかもしれません。jquery.js ファイルを再ダウンロードして置き換えることもできます。1.7.1 は引き続き github から入手できます。しかし、私があなただったら、現在のバージョンも試して、何かが壊れない限りそれを維持します.

問題が解決しない場合は、再現できるブラウザ/OS とバージョンを教えていただけると助かります。

于 2013-08-14T23:18:05.533 に答える
0

完全なページ コードなしで言うのは難しいです。私の推測では、トグルされたコンテナー内に jQuery のコードが含まれていると思います。

于 2013-05-24T20:43:01.003 に答える