settimeout () преждевременно стреляет при демонстрации Alert () в Chrome

StackOverflow https://stackoverflow.com/questions/4464446

Вопрос

У меня есть следующий код:

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 секунд, щелкните в поле перед рукой, чтобы протестировать.

http://jsfiddle.net/pfgaj/

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top