Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript getJSON请求在参数数组中循环,每次调用之间都有延迟_Javascript_Jquery_Ajax_Json_Loops - Fatal编程技术网

Javascript getJSON请求在参数数组中循环,每次调用之间都有延迟

Javascript getJSON请求在参数数组中循环,每次调用之间都有延迟,javascript,jquery,ajax,json,loops,Javascript,Jquery,Ajax,Json,Loops,有谁能帮助我理解为什么下面的jQuery/Javascript代码不是以每秒1次的节奏运行,而是有大量的ajax调用(慢到每秒很多次) var i=0,l=data.length; 函数geocode(){ $.getJSON( 'https://maps.googleapis.com/maps/api/geocode/json', { 密钥:“xxxxx”, 传感器:错误, 地址:data[i][3],, 地区:'gb' }, 函数(d、textStatus、jqXHR){ 如果(d[“状态”

有谁能帮助我理解为什么下面的jQuery/Javascript代码不是以每秒1次的节奏运行,而是有大量的ajax调用(慢到每秒很多次)

var i=0,l=data.length;
函数geocode(){
$.getJSON(
'https://maps.googleapis.com/maps/api/geocode/json',
{
密钥:“xxxxx”,
传感器:错误,
地址:data[i][3],,
地区:'gb'
},
函数(d、textStatus、jqXHR){
如果(d[“状态”]=“正常”){
console.log(数据[i][3]);
日志(d[“结果”][0][“几何体”][“位置”]);
i++;
如果(i
在我的头脑中,这是这样的:

  • 第一次调用geocode
  • Ajax请求已发出
  • 在成功(这是一个任意的时间后)我读了结果
  • 增加索引
  • 如果我们还没有扩展阵列,请设置另一个对geocode的调用,在1秒后启动

  • 仅供参考:“数据”是一个嵌套的英国邮政编码数组,我正在尝试使用谷歌的地理编码API检索坐标。

    您不断设置新的时间间隔,从不取消上一个时间间隔。您应该使用
    clearInterval()
    取消间隔,或者使用一次性
    setTimeout

    如果使用间隔,则在设置间隔时保存值:

    var intervalId;
    ....
    intervalId = setInterval(...);
    
    然后

    当你需要一个新的间歇。
    或者使用
    setTimeout()
    并根据需要重新发布

    它是如何进入if语句的<代码>1不是<1
    @ᾠῗᵲᄐᶌ 你读到的“1”实际上是一个“l”(代表利马)。这是怎么回事<代码>变量i=0,然后
    i++;如果(i
    你一说我就发现了。我使用的是
    setInterval
    而不是
    setTimeout
    。是我的错。Thanks@chrsmrrtt. 很高兴你拿到了。
    var intervalId;
    ....
    intervalId = setInterval(...);
    
    clearInterval(intervalId);