jquery的定时器setTimeout()与定时循环执行器setInterval()的区别

有些话、适合烂在心里 提交于 2019-12-23 13:08:02

一、定时循环执行器setInterval("getLoc()",5000);或者setInterval(getLoc,5000);的书写格式都是正确的。

这个方法是每过5秒就会执行getLoc()方法,从而调用ajax去后台访问数据。这里的ajax主要是去后台访问

经纬度的数据,以百度地图坐标的方式显示当前记录的位置。

 $(function(){
        setInterval(getLoc,5000);
    //getLoc();
     });
     function getLoc(){
    $.ajax({
    url: "/service/gps/selectTopGps",
          type : "POST",
          data:{}, 
          success: function(ajaxData) { 
          bm.clearOverlays();
          lat=ajaxData[0].latitude;
             lon=ajaxData[0].longitude;
            // a++;
         // console.log(a); 
          //调用百度地图  
          var x = lon*1/100;
          var y = lat*1/100;
          var ggPoint = new BMap.Point(x,y);
         bm.centerAndZoom(ggPoint, 15);
         bm.addControl(new BMap.NavigationControl());

         //坐标转换完之后的回调函数
         translateCallback = function (data){
           if(data.status === 0) {
             var marker = new BMap.Marker(data.points[0]);
             bm.addOverlay(marker);
             var label = new BMap.Label("您的宝贝在这里",{offset:new BMap.Size(20,-10)});
             marker.setLabel(label); //添加百度label
             bm.setCenter(data.points[0]);
           }
         }

          setTimeout(function(){
             var convertor = new BMap.Convertor();
             var pointArr = [];
             pointArr.push(ggPoint);
             convertor.translate(pointArr, 1, 5, translateCallback)
          }, 1000);
          },
          error:function(){
          console.log("加载GPS信息失败!"); 
          alert("GPS信息加载失败");
          }
    });
     }

二、定时器setTimeout("getLoc",5000);或者setTimeout(getLoc,5000);的书写格式都是正确的。

如果把上面的setInterval()方法换成setTimeout()则getLoc()方法只会在5秒后执行一次后不再执行。

https://blog.csdn.net/cheng549309240/article/details/77371589

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!