jquery - $.get 请求数量未知;如何有效上链?

标签 jquery promise get

在数据库中,我有一个键数组,用于从其他表中获取数据。数组中的项目数各不相同。

所以,我可以动态设置多个变量:

var keys = ["3958d9d0kdjcu4","49djs40dksnhjd","fjfjfjtnncxkshe"]
for(var i = 0; i < keys.length; i++) {
    window.keys[i] = i;
}

但是,如何链接不确定数量的 $.get 请求?:

var A = $.get("db.url?id=key0");
var B = $.get("db.url?id=key1");
var C = $.get("db.url?id=key2");
// etc.

$.when( A, B, C).done(function(A, B, C) {
//...
});

最佳答案

要对不确定数量的请求执行此操作,请放置从 $.get() (或 $.ajax() $.post()) 到一个数组中,然后将该数组应用于 $.when(),如下所示:

var requests = [];
for (var i = 0; i < requestsToBeMade; i++) {
  requests.push($.get(`db.url?id=key${i}`));
}

$.when.apply($, requests).done(function() {
  // do some work here...
});

但是,虽然这可行,但并不理想。您不应该像这样快速连续地发出多个 AJAX 请求,因为它会给服务器带来必要的负载,并且不会扩展。

更好的解决方案是合并您发送的所有数据并发出单个请求。

关于jquery - $.get 请求数量未知;如何有效上链?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55503133/

相关文章:

javascript - 如何返回许多 promise 并在做其他事情之前等待它们

javascript - 运行一个 Promise.all 的 Promise.alls

javascript - 在 XMLHttpRequest 之后打开页面

java - HTTP 从 API 获取 XML 请求

spring - Spring Security中如何获取GET参数?

javascript - 如何显示给定范围内最接近的标记?

javascript - 具有从 到 的随机唯一数字的数组 js

javascript - 解决另一个 promise 的外部 promise ——交替执行顺序?

php - 停止 javascript 缓存

javascript - 如何以更简单、不那么荒谬的方式写这个