2016-05-12 71 views
0

的setInterval()的工作,我有以下功能:讓一個秒鐘循環

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, 
       });     
     } 

它的作用是將具有打開特定網頁(標籤)的用戶的CURREN geolocalization。這是整個腳本:

<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); 
+0

在您的setInterval調用中沒有傳遞位置參數,只需要像在代碼的開頭那樣調用它就好了(如答案所述) – IrkenInvader

回答

3

這是怎麼回事?

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

你必須添加一個任意的回調來調用具有某個參數的實際函數。

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, 
      });     
    }