所以我認爲這個解決方案可以工作,但只是想看看是否有更優雅的東西。所以我想讓用戶「登記」到一個位置,一旦他們這樣做了,我想看看他們是否留在那個位置。我會每5分鐘檢查一次。一旦他們檢查出來,然後我可以停止檢查。目標是獲得在商店中花費的總時間。我正在使用JavaScript SDK for Parse。這是我解決方案的基本問題,而不是一個完整的解決方案。使用while循環來檢查用戶的位置,並且只要他們保持登錄狀態,就可以繼續這樣做。感謝您的任何建議和幫助! (另外我正在使用Google Maps API來獲取商店位置)。只是爲了確定我在問我的方法是否正確,而不是我的代碼是否正確。每5分鐘檢查一次用戶位置javascript
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循環根本不工作。它只會在while循環中旋轉,創建'setTimeout()'定時器,直到系統耗盡資源。永遠不會有超時運行。這只是根本不是你可以用JavaScript編程的方式。您必須設置一個計時器,然後當該計時器觸發時,您決定是否要繼續並設置另一個計時器。 – jfriend00