私はPHPでアプリケーションを開発していますが、アプリケーションは複数のAJAX POST(それぞれ少量のHTMLを返す)を作成する必要があります。これらのPOSTのそれぞれは、返されたHTMLをdivに挿入する必要があります。問題はありませんが、すべてのAJAX POSTを一度に開始すると問題が発生します(10を開始します)。POSTごとに別のdivを指定します。それらはすべて非同期であり、まったく同じ時刻にほぼすべて同じHTMLに戻るので、すべてのHTMLはそれぞれのdivの代わりに1つのdivに終わります。私は明確にするためにいくつかのコードを投稿します。ここに私の「apiCall」関数の削除されたバージョンがあります:同時に複数の非同期jQuery AJAX POSTが返される
xhr = $.ajax({
type: "POST",
url: "../api.php",
dataType: "json",
data: data,
success: function(data) {
obj.html(data.D['html']);
}
});
問題が発生すると成功関数を回避します。 data.D ['html']にはPOSTのHTMLが含まれていますが、次のAJAX POSTによって上書きされていると思うので、最後にdivに入れられるAJAX POSTです(これはjQueryの一部です
$("#container).apiCall({options...});
誰もがこれらのAJAXポストは戻ったとき、私はその特定から返されたデータを置くことができるようにそれを作るためのソリューションを提供することができます:プラグイン私は、私はこのようにそれを呼び出す)で渡されたdiv要素であるOBJ、書きました正しいdivにPOSTしますか?
申し訳ありません。バグがありました。 "var"キーワードがありませんでした。固定コードを試してください。 –
objが$(this)に代入されているために違いがありますか?これは、ローカルな関数apiCall()ですか? –
もう少し詳しく調べることなく、わかりませんでしたが、閉鎖が必要なものだと本当に思います。 jsfiddle.netにコードを貼り付けますか? –