settimeout () преждевременно стреляет при демонстрации Alert () в Chrome
-
11-10-2019 - |
Вопрос
У меня есть следующий код:
t = setTimeout(function () { blah(); }, 900000);
Который, в основном, называет Бла после 15 минут загрузки страницы.
Однако, если в какой -то момент я показываю Alert () или подтверждение (), то, как только он будет отклонен, Blah () будет казнен по какой -то причине.
Насколько я видел, это происходит только в сафари/хром. Это не происходит в IE/Firefox.
Есть идеи, что происходит или даже лучше, как решить это?
Спасибо!
Даниэль
Решение
Вы не одиноки, это ошибка: code.google.com/p/chromium/issues/detail?id=43796
Другие советы
Эта проблема не была решена командой Chromium.
Я обнаружил, что, введя некоторую задержку между ClearTimeout и Settimeout, решит проблему.
// mouse event
document.onmousemove = function(){
clearTimeout(timeout);
debug("Idle Timer reinitialized"); // apparently this function introduces some delay. it just works. You may want to include another timer here like for 2-3 seconds.
timeout = setTimeout(logoutNow, systemTimeout);
}
Надеюсь, поможет.
Вы уверены, что это причина, я запустил эту демонстрацию и не могу повторить ее.
"Тайм -аут!" появится через 10 секунд, щелкните в поле перед рукой, чтобы протестировать.