繁体   English   中英

我可以在JavaScript或jQuery中一次命中两个ajax请求吗?

[英]Can I make two ajax request in one hit in JavaScript or jQuery?

我可以在JavaScript或jQuery中一次命中两个或多个Ajax请求吗?

我的意思是我知道提出这个问题似乎很疯狂,但早些时候我接受过采访,他们问了我这个问题。 在采访之后我搜索了很多但没有发现任何东西。

在某个地方我刚发现你可以把另一个Ajax请求作为第一个回调。 但这根本不是真实的故事。

我有疑问, sync or async在这方面有一些作用吗?

如果有人有解决方案,jsfiddle或plunkr上的POC也会受到赞赏。

JavaScript专家,请帮忙。 提前致谢!!

如果您使用的是jQuery,则可以使用延迟对象 基本上你可以执行多个ajax请求,当完成所有请求后,就会执行一个回调。

有关更多信息,请查看http://api.jquery.com/jquery.when/ 还有一个简单的例子:

$.when( $.ajax( "/page1.php" ), $.ajax( "/page2.php" ) )   
    .then( myFunc, myFailure );

简而言之 - 不,你不能。

您可以按顺序进行多次回调, 或者您可以向服务器端的多个点发出所有请求。

总是可以连续执行两个ajax请求,但无法保证它们将以何种顺序返回到各自的回调。

看,如果你想在单个xmlHttpRequest上发送2个url,我想,这是不可能的。

并且假设有可能,我们如何能够找到服务器发送的数据作为响应哪个响应是针对哪个url请求?

在同一事件上调用2个请求,使它们异步。

$("#btn").click(function(){$.get("foo.php");$.get("bar.php");}); 

我不确定你的意思是什么? 但是说明白了。

async - 不等待来自ajax请求的响应

sync - 等待ajax的响应

取决于你想做什么。

编辑:阅读其他回复后。 澄清一下,如果你想要多个并发的并发ajax请求,你需要为每个请求提供并发连接。 这是可能的。

你什么时候只能做两个ajax点击,但是如果你想要两个以上的ajax命中,那么我总是会推荐ajax。

$.ajax({
           url: '/Job/multipleajax/',
           contentType: "application/json; charset=utf-8",
           dataType: "json",
           type: "POST",
           data: JSON.stringify(id),
           success: function (response) {
    alert("first ajax hit");
    }
    }).always(function () {
    // second ajax call here
    }).always(function () {
    // Third ajax call code  here
    })

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM