Chromeでalert()を表示すると、setimeout()settimeout()が早めに発射されます

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

質問

次のコードがあります。

t = setTimeout(function () { blah();  }, 900000);

これは、基本的に、ページが15分間読み込まれた後に何とか呼び出します。

ただし、ある時点でalert()またはconfism()が表示された場合、却下されるとすぐに、何らかの理由でBlah()が実行されます。

私が見た限り、これはSafari/Chromeでのみ起こります。 IE/Firefoxでは起こりません。

これを解決する方法は、何が起こっているのか、それともさらに良いことですか?

ありがとう!
ダニエル

役に立ちましたか?

解決

あなたは一人ではありません、これはバグです: code.google.com/p/chromium/issues/detail?id=43796

他のヒント

この問題は、Chromiumチームによって解決されていません。

ClearTimeOutとSetimeOutの間にある程度の遅延を導入することで、問題が解決することがわかりました。

// 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