setTimeOutを使用して自動スライドショーを制御しています。
(ここでそれを見ることができます:http ://thingist.com/labs/ipad.shtml-基本的に私が働いている間見るのがきれいなものです。画像はredditのAPIから来ています)
コードはおおよそ次のようになります。
next() {
image_url = images[key]["url"]
$("#image").html(vsprintf("<img src='%s'>", [image_url]));
key++;
setTimeOut(function() { next(); }, 30000);
問題は、別の方法(たとえば、div onclickを使用)で「next」関数をトリガーした場合でも、setTimeOutコールバック関数がキューに入れられることです。したがって、画像を「次」にしますが、コールバックが発生すると、画像は再び「次」になります。連続して何度も「次へ」進むと、約30秒の遅延バーストが続きます。(キューに入れられたすべてのタイムアウトが発生すると)。
setTimeOutのコールバックを時期尚早にトリガーする方法はありますか?または、それを完全にデキューするだけですか?