Javascript 如何在数组中一次循环一个字符串?

Javascript 如何在数组中一次循环一个字符串?,javascript,arrays,loops,for-loop,Javascript,Arrays,Loops,For Loop,好的,我有一个巨大的数组,有10000多个字符串,我希望循环通过一个数组,一次一个字符串,就像我想等到函数完成后再转到数组中的下一个字符串一样 现在,循环通过我的函数尽可能快地放入字符串,而我不能这样做,因为这些字符串被插入到$.get请求中。。。而且每次都会有太多的请求 这是我目前的代码: var sp = ["48343", "48383", "48934893", "438943", "47849345", "45843945", "47483923", "38445"]; for (va

好的,我有一个巨大的数组,有10000多个字符串,我希望循环通过一个数组,一次一个字符串,就像我想等到函数完成后再转到数组中的下一个字符串一样

现在,循环通过我的函数尽可能快地放入字符串,而我不能这样做,因为这些字符串被插入到$.get请求中。。。而且每次都会有太多的请求

这是我目前的代码:

var sp = ["48343", "48383", "48934893", "438943", "47849345", "45843945", "47483923", "38445"];
for (var i = 0; i < sp.length; i += 1) {
    check(sp[i]);
}

如果我解释得不够好,请原谅,与其投票否决,不如问我该解释什么,谢谢:从我所能告诉你的,你可以简单地用a来隔开你的请求

例如:

var sp = ["...", "..."];
var i = 0;
var interval = setInterval(function() {
  if (i >= sp.length) {
    clearInterval(interval);
  } else {
    check(sp[i++]);
  }
}, 5);

您需要在一个请求中将整个阵列发送到服务器,并在服务器上对整个阵列进行检查。然后,来自请求的响应是通过检查的响应的数组。您当前的设计很糟糕,请不要执行数千个get请求。

默认情况下,$.get是异步的

查看下面的链接

因此,如果使调用同步,效果会更好,但问题是,自从jQuery 1.8以来,它就被弃用了,因为它只是在传递给调用的对象中引入了一个值为false的新属性async

但是如果您使用的是jQuery版本>=1.8,最好不要使用它

如果没有,您可以查看以下链接:

注意»这样,for循环内的调用语句将等待请求完成,即一旦函数返回,则下一次迭代将继续

最后,我认为,对于您的应用程序来说,将Web workers与异步ajax get请求一起使用将是一个更好的选择


检查。

取决于您希望一次发出多少请求。你必须实现一个节流算法。但是,10000个以上的请求,即使被限制,听起来也不是一个好的设计策略,或者只是简单的。将10000个请求串联起来似乎也不是一个好主意。您是否控制请求发送到的服务器?如果是,则将其更改为接受多个ID。为什么不能发布该数组并编写一些服务器代码来处理该数组呢?如果这是一个问题,您不必一次发送所有数据,但至少应该使服务器能够一次处理多个值。在标准Javascript和jQuery中,都不推荐使用async:false,除了总体上是个坏主意之外。请不要推荐它-相反,JS学习者最好使用异步,它是语言的很大一部分。