我正在开发一个基于网络的内部工具
因为我需要基于数组值生成一系列 ajax 调用。我之前是同步的,如果我这样做,那么它会阻塞浏览器,所以我无法在 ajax 运行时显示加载图像。
因此,我将调用更改为异步,现在发生的情况是 ajax 调用正在进行,并且响应与 UI 中的所有调用相同,但是如果我在 firebug 中检查响应是否清晰,并且如果我在循环中放置一些警报然后它工作正常。
我发布了代码以供进一步参考
// calling the function within loop
$.each(texts, function (tind, tval) {
setTimeout(function () {
txtcmpare(tval, search_logo, ask_logo, option_logo);
},2000);
});
//the function which calls ajax (txtcmpare)
function txtcmpare(actval, sl, al, ol) {
var tch_locale = new Array();
var tch_tempname = new Array();
if (actval != "==" && actval != "") {
avail = 0;
tparam = actval;
//respout = findloacle(param);
setTimeout(function () {
findloacle(tparam, function (y) {
// my operations
});
},2000);
}
if I put some alert here, sometimes response are clear
}
//the ajax function
function findloacle(locparam,callback) {
//var loc = new Array();
$.ajax({
type: "POST",
url: "Services/Locale.asmx/ajaxresp",
contentType: "application/json; charset=utf-8",
data: JSON.stringify({ queryparam: locparam }),
dataType: "json",
cache: false,
success: function (data) {
//loc = result.d;
callback(data);
},
error: function () {
alert("error");
}
});
//return loc;
}