У меня есть сценарий javascript, который я разрабатываю для приложения phonegap, которое получает местоположение устройства, пока не будет достигнута определенная целевая точность. Если цель не выполняется, сценарий снова называет себя вечностью. Обычно это занимает от 1 до 8 попыток в зависимости от местоположения и последнего используемого времени, а затем все работает нормально. Проблема, с которой я сталкиваюсь, заключается в том, что некоторые устройства никогда не достигают этого порога (что отлично подходит для приложения), но разрушает время работы от батареи, потому что этот сценарий работает в фоновом режиме. Итак, как я могу убить этот скрипт с помощью события click (кнопка отправки)? Я думал о настройке глобального var, который нажимал на кнопку отправки кнопки. Что-то вроде:Завершить Javascript Loop From Click
if (var != 'quit') {
//function
} else {
///nothing
}
function getlocation(position) {
document.getElementById("lat").value = (position.coords.latitude);
document.getElementById("long").value = (position.coords.longitude);
document.getElementById("accu").value = (position.coords.accuracy);
var accuracy = parseInt(position.coords.accuracy, 10);
if (accuracy <= 50) {
$('#scanner').removeClass('littlered').addClass('littlegreen');
} else {
setTimeout(navigator.geolocation.getCurrentPosition(getDroplocation, onError, {
enableHighAccuracy: true
}), 3000);
}
}
Это еще не работает. Я устанавливаю глобальный var, но ничего не происходит. Какие-нибудь лучшие методы или способы получить мою вышеупомянутую идею? Я на правильном пути?
Как мне добавить его обратно? Мне нужно, чтобы этот скрипт снова можно было использовать через несколько минут. – centree
вызовите функцию, которая снова выполнит метод setTimeout() – frosdqy
и установит значение = в это? – centree