2009-08-12 8 views
2

ajaxを呼び出す前に$( '')。show()で表示される "処理中..." divオーバーレイがあります。私が実行している問題は、divを表示してからdivを隠す前にいくつかのajax呼び出しを行い、Internet Explorer(7)とChrome(2.0.172.39)のイベントをキューに入れるように見える場合ですが、 Firefox(3.0.13)で期待される結果を得る。 1つのAJAX呼び出しがあるときは正常に動作します。このコードは次のようなものです:Internet Explorer/ChromeでJQuery show()が遅れています

答えて

0

おそらく、個々のajax呼び出しの完全なイベントに接続することによって信号処理を行う必要がありますか?あなたがAjax呼び出しをデイジーチェーンしているなら、それはあなたがそれが欲しいと信じているように、それを直列化して動作させるでしょう。 ajax呼び出しがブロックされないので、最後のメソッドの完全なダイアログを非表示にしてください。

0

ショーが完了したときに呼び出す関数を添付することができます。

$('#foo').show(0, function(){multipleAjaxCalls();}) 

http://docs.jquery.com/Effects/show

+0

あなたが行ったように '0'を渡すと渡された' function'は無視されます。 –

+0

それは今ですか?ありがとう –

0

ええ、あなたのAjaxの呼び出しを入れ子にしてみてください。このような何か -

function singleAjaxCall() { 
    $.ajax({ 
     url: ..., 
     type: "GET", 
     async: false, //There is a reason for this. 
     success: myCallback1 
    }); 
} 


function myCallback1($data) 
{ 
    if(some condition){ 
    performSingle(); 
    } 
} 
0

非同期がfalseに設定されている場合、成功する方法、理由はよくherehereを説明しています。

asyncをfalseに設定すると、前に行っていたことに関係なく、ブラウザがフリーズします。 ajax呼び出しを非同期で処理して、コードを適合させる必要があります(this threadもご覧ください)。

関連する問題