2011-01-19 28 views
0

ちょっと、 jqueryに問題があります。私はいくつかのajax呼び出しを実行しており、進捗ダイアログを表示したい。ただし、Ajaxコードが終了するまで進捗ダイアログが表示されません... Ajaxリクエストの前に必ず起動する必要があります。あなたは非非同期AJAXを使用しているなぜあなたは進捗ダイアログをしたい場合はAjaxコールが終了した後、進捗ダイアログが表示されます。

function add() { 
    $('.tdtrackname').each(function() { 
     $.ajax({ 
      cache: false, 
      async: false, 
      url: 'ajax/add.php?query=' + $(this).html(), 
      beforeSend: function() { $('#loadingscreen').show(); }, 
      success: function(data) { 
      $('#divajax').html(data); 
      } 
     }); 
    }); 
} 
+0

:私はこれを試してみてください

function add() { $('#loadingscreen').show(); //SHOWS UP AFTER ALL THE AJAX REQUESTS ARE FINISHED $('.tdtrackname').each(function() { $.ajax({ cache: false, async: false, url: 'ajax/add.php?query=' + $(this).html(), success: function(data) { $('#divajax').html(data); } }); }); } 

+0

私は呼び出しが必要なのでそれ以外の場合は、最後のものが終了する前にトリガーされます – robs

+0

何かを試してみてください...おそらく同期呼び出しはすべてをブロックしていますか? (画面上の図さえも)、このため、通話が終了したときにダイアログが表示されます。 –

答えて

1

事前に おかげ

。これは、私を殺している、あなたは私を助けることを願ってコール?
+0

これを試してみて、同じことが起こります。すべてのajax呼び出しが行われるとすぐに、読み込み画面がポップアップします(関数add()が実行されてから約5秒後) – robs

+0

質問に対するコメントで述べたように、同期呼び出しはDOM上のすべての操作をブロックする可能性が非常に高い。データを要求して処理する方法を再考して、非同期に処理できるようにすることが最善の方法です。 –

+0

ええ、しかし、その前に何かを起動することをブロックするはずですか? – robs

関連する問題