裁判官にサイクルと呼ばれる今日で書かれたプロジェクト、スタートとして、非同期のAJAX呼び出しを設定する際に、ボタンのAJAX呼び出しが、コールのAjaxの戻り値をチェックし、そう、すべての要求へのリクエストの終了まで待ちます
これは、それがすべて一度にデータを返す前に、この要求はビジネスああと一致していないにもサイクルタイムサイクルの最後の層であり、
問題:どのようなループはシングルスレッドであるため、スレッドを開いたときに実行が楽屋AJAXを行くことにするので、マルチスレッドとAjax、同期、非同期と呼ばれますが、ループ自体のシングルスレッドです何か、Ajaxは、Ajaxは循環のために、スレッドを開いたときに実行するには、Ajaxの戻りデータはそれを取り戻すためになるまで、そう間違って行く、forループの最後まで彼のために待機なし。
ソリューション:各サイクルのために、同期缶を変更するAJAXちょうど必要性は、私たちはAJAXの途中で取得するためにコードを追加し、AJAX loadメソッドに移動し、彼は返されたデータを取得する必要があります。非同期:同期にはfalse、//セット。
1、AJAX非同期パラメータ設定、すなわち、JSと同期、デフォルトは真(非同期)であり、偽です。
方法2も同様に解決するために使用することができ、私は再帰ループを解決する、それを試していません。
2.この問題を解決するために再帰を使用する方法。
関数func(回){ IF(時間<= 0){ リターン; } $に.get(urlには、データ、機能(){ 回 - ; FUNC(回); //再帰呼び出し }); } FUNC(5)。
そして、私が試してみてください。
図1に示すように、非同期:偽の時、
図2に示すように、非同期:真、
3、再帰的な方法:
非同期形式のセット、AJAX突然8段目に、残りの7つのステージバイヤーいいえ、実際には、すべての値と、最終的な戻り値になるまで待つことであるときにのみ見ることができます
私たちは、それが魚の対応する値を取得する必要があり、各サイクルの一般的なコースです。小さなピット、踏ま、次はずっと容易になるだろう。