Javascript 每5分钟检查一次用户位置

Javascript 每5分钟检查一次用户位置,javascript,google-maps,parse-platform,Javascript,Google Maps,Parse Platform,所以我认为这个解决方案会奏效,但我只是想看看是否有更优雅的东西。所以我想允许用户“签入”到某个位置,一旦他们签入,我想看看他们是否仍在该位置。我大约每5分钟检查一次。一旦他们退房,我就可以停止检查了。目标是获得在商店花费的总时间。我正在使用Javascript SDK进行解析。这是我的解决方案的基本jist,不是一个完整的解决方案。使用while循环检查用户位置,并在用户保持签入状态时继续执行此操作。谢谢你的建议和帮助!(我还使用谷歌地图api获取商店位置)。只是为了确保我问的更多是我的方法是否

所以我认为这个解决方案会奏效,但我只是想看看是否有更优雅的东西。所以我想允许用户“签入”到某个位置,一旦他们签入,我想看看他们是否仍在该位置。我大约每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);