如何使用单个ajax方法处理并发ajax响应
How to handle simultaneous ajax responses using single ajax method?
处理ajax的方法
function ajaxMethod(){
return $.ajax({
url: ajaxUrl,
type: "POST",
dataType: "JSONP",
jsonpCallback: ajaxCallback
});
}
调用这个方法:
dD(ajaxMethod());
aA(ajaxMethod());
bB(ajaxMethod());
cC(ajaxMethod());
aa,bb,cc,dd方法有
promise.success(function (response) {
console.log(response);
});
现在aA响应在bB函数中到来,bB响应在cc函数中到来,同时呼叫到来。也尝试使用async true没有发生任何事情。有什么建议吗?
对于jsonpCallback
,你告诉jQuery使用一个特定的函数名作为回调函数(而不是生成一个唯一的),所以每次调用它时,你都会覆盖上一个函数。
只要去掉jsonpCallback: ajaxCallback
。
当你在它,删除type: "POST",
,它是不兼容的JSONP
我想这就是你想要的。
这段代码使用返回的promise等待结果,然后将结果传递给其他函数。
ajaxMethod().success(function(response)
{
dD(response);
});
ajaxMethod().success(function(response)
{
aA(response);
});
ajaxMethod().success(function(response)
{
cC(response);
});
ajaxMethod().success(function(response)
{
dD(response);
});
你的aA, bB, cC和dD方法现在可以:
function <insertname>(response)
{
console.log(response);
}
如果您希望以同步方式发送请求,请尝试以下操作:
var callBack = $.Callbacks();
callBack.add(dD(ajaxMethod()));
callBack.add(aA(ajaxMethod()));
callBack.add(bB(ajaxMethod()));
callBack.add(cC(ajaxMethod()));
callBack.fire();
上面的代码行将确保各自的ajax调用将被调用
相关文章:
- 无法在通过jQuery的ajax加载的页面中执行javascript
- 如何通过ajax刷新JSF填充的javascript变量
- 如何在php文件中获取$.post-ajax传递的值
- Replacing $ .ajax?
- 在使用Polymer'加载所有json文件后执行方法;s的核心ajax
- Ajax发布表单序列化,发布引号'
- 使用node.js发送并发ajax请求的限制是什么
- jQuery 限制并发 AJAX 请求的数量
- AJAX服务器端处理可以并发运行
- 编写一个脚本来确定浏览器为特定域允许的最大并发ajax调用数
- 并发AJAX回调:如何同步它们
- AJAX -- 多个并发请求:延迟 AJAX 执行,直到某些调用完成
- 并发jQuery ajax请求中的重复数据
- 处理并发Ajax请求
- 如何使用单个ajax方法处理并发ajax响应
- 如何用jQuery实现并发Ajax请求的发布和评论机制
- 使用AJAX响应终止并发请求
- 并发AJAX请求和响应功能
- Ajax并发调用一个接一个地运行
- jQuery在并发ajax请求/then/失败时:哪个请求失败