[解決済み] AJAXを同期させる(SJAX)にはどうすればよいか
2022-02-10 03:21:06
質問事項
AJAXリクエストは、コントローラの応答を待ってから実行を継続するようにすることです。これは、AJAXをforループの中に実装したためです。
for (var i = 0; i <= qtg.length-1; i++) {
index++;
gq(type, objParams.intro + " #" + index, qtg[i]); // ajax request happens here
}
function gq(type, intro, qtg) {
var new_question_params = "type=" + type+ "&intro=" + intro+ "&q=" + qtg;
$.ajax({
type: "POST",
async: false, // async set to false doesnt do a thing
url: "./cntlr/generate/",
data: new_question_params,
success: function(data, textStatus, jqXHR) {
console.log("created order : " + (data.q.order));
},
dataType: "json"
});
}
が期待される出力であること。
作成された順番:1
作成順:2
作成順 : 3
作成順 : 4
Ajaxが返ってくる。
作成された順序 : 4
作成順:2
作成順:1
作成順 : 3
何か思い当たることはありますか?
解決方法は?
回答
非同期はAJAXの実行を待つかもしれませんが、ループ内のあなたのコードはまだ同時にすべての4つの呼び出しを行っています。
ご提案
なぜループしているのかわかりませんが、ここはAJAXのコールバックを作るのに最適な場所です、こんな感じです。
var totalNumber = qtg.length;
function gq(type, intro, i) {
var new_question_params = "type=" + type+ "&intro=" + intro+ "&q=" + qtg[i];
$.ajax({
type: "POST",
async: false, // async set to false doesnt do a thing
url: "./cntlr/generate/",
data: new_question_params,
success: function(data, textStatus, jqXHR) {
console.log("created order : " + (data.q.order));
if (i < totalNumber)
gq(type, intro, i+1);
},
dataType: "json"
});
}
関連
-
[解決済み】Ajaxクロスオリジンリクエストがブロックされました。同一生成元ポリシーがリモートリソースの読み取りを不許可にする
-
[解決済み] How to make the first option of <select> selected with jQuery
-
[解決済み] jQueryで要素が非表示になっているかどうかを確認するには?
-
[解決済み] 配列に特定のインデックスで項目を挿入する方法 (JavaScript)
-
[解決済み] Microsoft JSONの日付はどのようにフォーマットするのですか?
-
[解決済み] jQueryを使ったAjaxリクエストの中断
-
[解決済み] jQuery Ajax呼び出し後のリダイレクトリクエストを管理する方法
-
[解決済み] どうすればjQueryに非同期ではなく、同期のAjaxリクエストを実行させることができますか?
-
[解決済み】別のウェブページにリダイレクトするにはどうすればいいですか?
-
[解決済み】jQueryでチェックボックスがチェックされているかどうかを確認するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】「Missing required request header」を修正する方法。origin,x-requested-withのいずれかを指定する必要があります' Ajax Error
-
[解決済み】Ajaxクロスオリジンリクエストがブロックされました。同一生成元ポリシーがリモートリソースの読み取りを不許可にする
-
[解決済み] カルーセルで画像を中央に配置する方法
-
[解決済み] jQuery ValidateプラグインでaddMethodを使用する
-
[解決済み] JQueryの使用 - フォームが送信されないようにする
-
[解決済み] 無効な JSON プリミティブ ERROR
-
[解決済み] AJAXを同期させる(SJAX)にはどうすればよいか
-
[解決済み] JWplayer 再生クリックでフルスクリーン表示
-
[解決済み] チェックボックスのオン/オフの切り替え
-
[解決済み] JW-Player - アンロードするには?