【问题标题】:Make setInterval () work for one second loop使 setInterval() 工作一秒钟循环
【发布时间】:2016-05-12 18:41:06
【问题描述】:

我有以下功能:

function successFunction(position) {
            var lat = position.coords.latitude;
            var lng = position.coords.longitude;
             var url= '<?php echo url("/") ?>/provider/location/set?lat='+lat+'&lng='+lng;
             console.log(url);
             $.ajax({
                  type: 'get',
                  url: '<?php echo url("/") ?>/provider/location/set?lat='+lat+'&lng='+lng,
                  success: function (msg) {
                    console.log("Location captured");
                  },
                  processData: false,
              });                  
        }

它的作用是发送打开该特定页面(选项卡)的用户的当前地理定位。这是整个脚本:

<script type="text/javascript">
        if (navigator.geolocation) {
            navigator.geolocation.getCurrentPosition(successFunction);
        } else {
            alert('Parece que la Geolocalización, la cual se requiere para esta página, no está habilitado en su navegador. Por favor, utilice un navegador que lo soporta o active la opción.');
        }
        function successFunction(position) {
            var lat = position.coords.latitude;
            var lng = position.coords.longitude;
             var url= '<?php echo url("/") ?>/provider/location/set?lat='+lat+'&lng='+lng;
             console.log(url);
             $.ajax({
                  type: 'get',
                  url: '<?php echo url("/") ?>/provider/location/set?lat='+lat+'&lng='+lng,
                  success: function (msg) {
                    console.log("Location captured");
                  },
                  processData: false,
              });                  
        }

      </script>

不好的是,它只有在用户不断刷新页面时才会发送。我一直在尝试让它每秒循环一次,以便 GEO 实时发送并且可以跟踪用户(这是用于汽车地理定位)。有没有办法可以实时发送信息或如何使 SetInterval 工作?这是我所拥有的,但它不起作用:

window.setInterval(successFunction, 1000);

【问题讨论】:

  • 在 setInterval 调用中没有传递位置参数,只需要像在代码开头那样调用它(就像答案描述的那样)

标签: javascript setinterval


【解决方案1】:

这个怎么样?

setInterval(function(){
   navigator.geolocation.getCurrentPosition(successFunction);
}, 1000);

【讨论】:

    【解决方案2】:

    你必须添加一个任意回调来调用带有一些参数的实际函数。

    if (navigator.geolocation) {
            window.setInterval(function(){
              navigator.geolocation.getCurrentPosition(successFunction);
            }, 1000);
    
        } else {
            alert('Parece que la Geolocalización, la cual se requiere para esta página, no está habilitado en su navegador. Por favor, utilice un navegador que lo soporta o active la opción.');
        }
        function successFunction(position) {
            var lat = position.coords.latitude;
            var lng = position.coords.longitude;
             var url= '<?php echo url("/") ?>/provider/location/set?lat='+lat+'&lng='+lng;
             console.log(url);
             $.ajax({
                  type: 'get',
                  url: '<?php echo url("/") ?>/provider/location/set?lat='+lat+'&lng='+lng,
                  success: function (msg) {
                    console.log("Location captured");
                  },
                  processData: false,
              });                  
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-01
      • 1970-01-01
      • 2020-05-03
      • 1970-01-01
      • 2014-04-10
      • 2022-01-27
      相关资源
      最近更新 更多