У меня была похожая проблема, и я также использую геолокацию html5.
Я уже реализовал предложенное решение setInterval()
. Та же проблема все еще возникала, хотя и занимала гораздо больше времени.
Я немного поэкспериментировал, вставив в свой код следующий фрагмент, просто чтобы «приостановить» выполнение кода:
ms = 30000;
ms += new Date().getTime();
while (new Date() < ms){
}
Приведенный выше фрагмент надежно генерирует тайм-аут выполнения JavaScript. Я тайно обнаружил, что следующий фрагмент также сгенерирует тайм-аут. Но похоже, что браузер способен восстанавливаться по таймауту. Не спрашивай меня почему. Это просто работает. Я надеюсь, что пострадавшие смогут проверить мои выводы.
ms = 30000;
ms += new Date().getTime();
while (new Date() < ms){
if (new Date() %100 == 0){
console.log('in while');
}
}
Итак, решение выглядит как , может показаться тривиальным, что console.logs следует добавлять в части кода, который вызывается чаще всего. Я надеюсь, что это может быть полезно (хотя я думаю, что это тоже кажется смешным, но это работает для меня)