Javascript 每5分钟检查一次用户位置
所以我认为这个解决方案会奏效,但我只是想看看是否有更优雅的东西。所以我想允许用户“签入”到某个位置,一旦他们签入,我想看看他们是否仍在该位置。我大约每5分钟检查一次。一旦他们退房,我就可以停止检查了。目标是获得在商店花费的总时间。我正在使用Javascript SDK进行解析。这是我的解决方案的基本jist,不是一个完整的解决方案。使用while循环检查用户位置,并在用户保持签入状态时继续执行此操作。谢谢你的建议和帮助!(我还使用谷歌地图api获取商店位置)。只是为了确保我问的更多是我的方法是否正确,而不是我的代码是否正确Javascript 每5分钟检查一次用户位置,javascript,google-maps,parse-platform,Javascript,Google Maps,Parse Platform,所以我认为这个解决方案会奏效,但我只是想看看是否有更优雅的东西。所以我想允许用户“签入”到某个位置,一旦他们签入,我想看看他们是否仍在该位置。我大约每5分钟检查一次。一旦他们退房,我就可以停止检查了。目标是获得在商店花费的总时间。我正在使用Javascript SDK进行解析。这是我的解决方案的基本jist,不是一个完整的解决方案。使用while循环检查用户位置,并在用户保持签入状态时继续执行此操作。谢谢你的建议和帮助!(我还使用谷歌地图api获取商店位置)。只是为了确保我问的更多是我的方法是否
checkIn: function(){
store_location = "something predefined";
Parse.GeoPoint.current({
success: function(point){
var user_location = new google.maps.LatLng(point.latitude,point.longitude);
if(user_location = store_location){
this.checkedIn();
},
}
});
},
checkedIn: function(){
///run loop while the user is still checked in
///increment total time by 5 min every time loop is called
var checked_in = true;
total_time = 0;
while(checked_in){
setTimeout(function(){
var user_location = new google.maps.LatLng(point.latitude,point.longitude);
if(user_location = store_location){
total_time=total_time + 5
}else{
checked_in = false;
}
}, 3000000)
}
}为什么不用while和setTimeout呢?我认为这更简单,代码也更简单,while循环根本不起作用。它将在while循环中旋转,创建
setTimeout()
计时器,直到您的系统耗尽资源。不会运行超时。这根本不是用javascript编程的方法。你必须设置一个计时器,然后当计时器启动时,你决定是否继续并设置另一个计时器。哦,是的,那太好了。谢谢我是一个java脚本noobDid,您的意思是只使用setInterval
,需要删除setTimeout
?我相信您的正确说法,但他可能刚刚被我编写它的方式弄糊涂了。setInterval(函数(){doSomething()},3000);是正确的实现oopsies。编辑了我的答案。谢谢是的,你是对的。我甚至不知道setInterval。javascript新手
window.setInterval(function(){
var user_location = new google.maps.LatLng(point.latitude,point.longitude);
if(user_location = store_location){
total_time=total_time + 5
}else{
checked_in = false;
}
},3000000);