我很好奇这是否被认为是好的做法或更好的做法。比如说,我必须连续进行两个或多个 ajax 调用,并等待所有调用完成后再继续。同样在这种情况下,我使用 JSONP 来调用单独端口上的服务(同源策略)。
$(document).ready(function() {
var semaphore = 0;
var proceed = function() { ... };
goAjax('arg0', function(data) {
semaphore++;
checkStatus(semaphore, proceed);
});
goAjax('arg1', function(data) {
semaphore++;
checkStatus(semaphore, proceed);
});
}
function checkStatus(sem, callback)
{
if (sem == 2)
{
callback();
}
}
function goAjax(args, callback) {
$.ajax({
...
dataType: "jsonp",
success: function(data) {
callback(data);
},
});
}
最佳答案
虽然我更愿意将这两个请求一起批处理,但我没有发现您正在做的事情有问题。通过批处理,我的意思是将其合并为一个调用,并在处理请求的服务器中进行两个服务调用,否则将单独调用,然后在一个回调中处理。必须等待这两个调用在 javascript 中完成,这违背了使它们成为异步(ajax)调用的全部目的。在某些情况下,这两个调用可能会单独调用,但在您的 javascript 和服务中添加某种机制以在一次调用中处理多个请求并没有什么坏处,例如适用的情况。
关于javascript - Javascript/jQuery ajax调用同步的常用做法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7617345/