![](/img/trans.png)
[英]Javascript /jQuery: How can I make this AJAX request run faster?
[英]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.