ダッシュボード ページがあり、jQuery を使用して各グラフを 1 回の ajax 呼び出しで更新しています。
async:false を使用して AJAX を実行すると、すべてが機能しますが、呼び出しが次々と行われるため、明らかに遅くなります。
async:true を実行すると、クエリは実行されますが、それらはすべて同じ要素に出力され、互いに上書きされます。
成功関数とエラー関数の jQuery セレクターが元の宛先を指し続け、すべてが最終ボックスを指していないことを確認するにはどうすればよいですか?
私のコード:
//update sparklines on dashboard page
$(".convobox7").each(function() {
id = $(this).attr('id');
$("#convobox-7-"+id).prepend("<img src='img/ajax_loader.gif'/>");
$.ajaxQueue({
url: '_ajax/getFunnelReport',
type: "POST",
dataType: "json",
async: true,
data: {funnel:$(this).attr('id'), dimension:'date'},
timeout: 50000,
success: function(json) {
var data = json;
if (data.success=='true') {
$("#convobox-7-"+id).html(data.htmlconv+"<br/><small>Past week</small>");
gebo_peity.init();
}
},
error: function(x, t, m) {
$("#convobox-7-"+id).html("");
}
})
});
ここではajaxQueueプラグインを使用していますが、それがなくても同じことが起こります。