每隔5分钟检查用户位置javascript

时间:2014-02-07 00:04:04

标签: javascript google-maps parse-platform

所以我认为这个解决方案可行,但只是想看看是否有更优雅的东西。所以我想允许用户“登记”到某个位置,一旦他们这样做了,我想看看他们是否留在那个位置。我会每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)
}

}

2 个答案:

答案 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);