当前位置: 首页 > 面试题库 >

如何在jQuery中批量处理ajax请求?

秦才英
2023-03-14
问题内容

我想知道如何以n为一组进行ajax调用。

这是我的用例:

我有一个显示使用情况数据的表。您可以钻取每一行,如果每行都有一个可以更深入钻取的公共属性,则可以选择一次钻取所有它们。对于每一行,都会进行ajax调用以获取要附加到表中的数据。

在某些情况下,最多可以同时钻取50行。可以想象,这给服务器带来了很大压力。我如何最好地以较小的批次发送这些呼叫,这些呼叫在等待这些批次之后才能启动?

我知道有些插件(例如jquery消息队列)可能会帮助我,但这是一个工作项目,因此我们希望尽可能避免使用插件。


问题答案:

您可以看一下使用jQuery.when,它允许您在所有请求完成后执行回调函数。

$.when($.ajax("request1"), $.ajax("request2"), $.ajax("request3"))
 .done(function(data1,  data2, data3){
         // Do something with the data
 });

要么

$.when($.ajax("request1"), $.ajax("request2"), $.ajax("request3"))
.then(successCallback, errorHandler);

另外,我不确定您是否在工作环境中会影响您对使用插件的担心,特别是如果这简化了您的工作。因此可以提高生产率。由于必须保证质量和长期维护,因此您必须仔细选择插件。



 类似资料:
  • 问题内容: 我正在制作一个Java Servlet页面,该页面检查域名列表,并通过jquery ajax请求检查每个名称。它的工作正常,除非结果被无序附加到DOM。什么是按请求的顺序处理请求的最佳方法,但是又像长时间轮询一样异步进行。我是javascript新手。 这是我用于请求的代码: 我当时正在考虑向Java Servlet发送一个序列号,该序列号将通过JSON返回,但是我想知道是否有更简单的

  • 问题内容: 我已经实现了当前的一组路由(例如): 他们工作得很漂亮。现在,假设我要为同一API实现“批处理终结点”。它看起来应该像这样: 身体应该像这样: 为此,我想知道如何调用播放框架路由器来传递这些请求?我打算使用与单元测试建议类似的方法: 通过进入的源代码,您会发现如下所示: 所以我的问题是:与复制上面的代码相比,用Play做到这一点的方式是否更简单(我不反对将Scala和Java混合使用)

  • 问题内容: 我已经制作了一个简单的聊天应用程序,它使用jquery使用长轮询方法, 这应该发生:页面加载后,发生对listen.php的无限请求,并且当用户发送消息时,代码通过send.php将消息发送到数据库。 问题是,使用萤火虫,我发现在listen.php请求之后执行的send.php请求仍然悬而未决。表示发送消息的请求仍处于待处理状态。 问题答案: 问题是由于 会话锁定 ; 和文件两者都使

  • 本文向大家介绍如何处理jQuery AJAX错误?,包括了如何处理jQuery AJAX错误?的使用技巧和注意事项,需要的朋友参考一下 处理jQuery AJAX错误。每当AJAX请求失败时,ajaxError(callback)方法都会附加一个要执行的函数。这是一个Ajax事件。 这是此方法使用的所有参数的描述- callback- 要执行的功能。用于该请求的XMLHttpRequest和设置将

  • 我有一个程序,用来在点击按钮后从网页上刮取源代码。我无法抓取正确的页面,因为我相信正在发送一个AJAX请求,我不会等待响应的发生。我的代码当前为: 参考此链接后,我相信要解决此问题,我可以实现“webClient.waitForBackgroundJavaScript(10000)”方法。唯一的问题是我不知道如何做到这一点,因为每次单击按钮时,我都会创建一个HtmlPage对象,而不是WebCli

  • 问题内容: 我知道为什么以及如何在jQuery AJAX请求中使用。 但是我需要的是它如何同步工作?这背后的魔力是什么? 问题答案: 因为本机对象提供了发出同步请求的可能性: async 可选的布尔参数,默认为true,指示是否异步执行该操作。 您可以通过暂停运行JS的线程来假定这样做。