2009-06-19 12 views
1

私はasp.netページメソッドにAJAXコールバックを作るためにJQueryを使用しています。すべてうまくいく。ただし、長い実行中のコールバックが進行中に新しいページに移動するためにハイパーリンクをクリックすると、ターゲットページは正常に応答しません。コールバックが完了するのにかかる時間と同じ時間にターゲットページが応答するため、コールバックが完了するのを待っているようです。進行中のコールバックがない場合、新しいページは即座に応答します。デバッガでコードをステップ実行すると、コールバックを中止してreadyStateを4に、ステータスを0に設定するハイパーリンクがクリックされたときにエラーハンドラが呼び出されます。JQuery Ajax

ハイパーリンクがクリックされたときに長時間実行されるコールバックが正しく中止された場合、それは新しいページに到達するのにとても時間がかかりますか?

ありがとうございました。チャーリー

答えて

0

自動生成されたJavaScriptのエラーです。スクリプトのデバッグを有効にして、ページを終了する前にエラーが発生していないかどうか確認できますか?

0

特定のシステムでAjaxを正常に実行したことがありますか?もしあなたがそうしていないのであれば、おそらくブラウザの互換性の問題でしょう.JQuery、Dojo、Scriptaculousなどは一般的なブラウザでスムーズに動作するので試してみます。 Raw Ajaxは、かなりイライラしていて、デバッグが難しい場合があります。

そして、Yuriy氏によると、いくつかのコードが役に立ちます。がんばろう!

0

Firebug for Firefoxは、この種の問題を解明するために生まれました。

Firebugを有効にして、コンソールタブを開いたままにします。コンソールにWebサービスコールごとに新しい行が表示されます。あなたが送受信されているものを調べることができますか?

0

$ .ajax関数の 'success'パラメータ( 'error'、 'dataFilter'など)は、実際にはサーバーから応答を受け取ったときに実行されるコールバック関数です。

だから、スクリプトがあなたがあなたのAJAX 要求を行った後実行を継続し、その後、あなたが応答を受けたときにコールバック関数に戻ります。

$.ajax({ 
    url: 'ajax/test.html', 
    success: function(data) { 
    //Runs after response is received 
    //Put stuff that depends on the response from the server here 
    } 
}); 
//Next statement runs immediately after request 
//Put stuff here that can run right away