让setInterval()工作一秒循环
Make setInterval () work for one second loop
我有以下功能:
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(function(){
navigator.geolocation.getCurrentPosition(successFunction);
}, 1000);
您必须添加匿名回调才能使用某些参数调用实际函数。
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,
});
}
我有以下功能:
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(function(){
navigator.geolocation.getCurrentPosition(successFunction);
}, 1000);
您必须添加匿名回调才能使用某些参数调用实际函数。
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,
});
}