所以我认为这个解决方案可行,但只是想看看是否有更优雅的东西。所以我想允许用户“登记”到某个位置,一旦他们这样做了,我想看看他们是否留在那个位置。我会每5分钟检查一次。一旦他们退房,我就可以停止检查了。目标是获得在商店花费的总时间。我正在使用Javascript SDK for Parse。这是我的解决方案的基本要点,而不是一个完整的解决方案。使用while循环检查用户位置,并在他们保持签入时继续这样做。感谢您的任何建议和帮助! (我也使用Google maps 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)
}
}
答案 0 :(得分:0)
而不是使用while和setTimeout,为什么不使用setInterval?我认为它更容易并简化代码
答案 1 :(得分:0)
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);