好吧,所以我有一个包含10,000+个字符串的HUGE数组,我希望一次在一个数组中循环一个字符串,就像我想等到函数完成移动到数组中的下一个字符串一样。
现在,循环将通过我的函数尽可能快地放入字符串,这是我所没有的,因为这些字符串被插入到ext-*
请求中……而且一次发出的请求过多。 ..
这是我的当前代码:
$.get
如果我的解释不够好,请原谅我,而不是投反对票请我解释一下,谢谢:D
答案 0 :(得分:0)
据我所知,您可能只想使用setInterval
来分隔您的请求。
示例:
var sp = ["...", "..."];
var i = 0;
var interval = setInterval(function() {
if (i >= sp.length) {
clearInterval(interval);
} else {
check(sp[i++]);
}
}, 5);
答案 1 :(得分:0)
您需要在一个请求中将整个阵列发送到服务器,然后在服务器上对整个阵列进行检查。然后,请求的响应是通过检查的数组。您当前的设计太糟糕了,请不要执行数千个get请求。
答案 2 :(得分:-1)
默认情况下,$.get()
是异步的。
检查以下链接
因此,最好通过将新的属性 async 引入值为 false ,使通话同步(但问题是自jQuery 1.8起就不推荐使用),传递给调用的对象。
但是如果您使用的是jQuery版本> = 1.8,最好不要使用它。
如果没有,您可以检查以下链接:
注意»这样,for循环中的调用语句将等待请求完成,即,一旦函数返回,则下一次迭代将继续。
最后,我认为,将 Web worker 与异步ajax获取请求结合使用将是您应用程序的更好选择。
选中https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Using_web_workers。