jQuery のソースから拾ってきたネタなんすが、arguments.callee と setTimeout を使ったリトライ処理が超便利なのでご紹介。 まず基本形はこんな感じす。 (function() { // なんか処理 if (error) { setTimeout(arguments.callee, 20); } })(); 上のコードは error が真のとき20マイクロ秒後に無名関数の実行をリトライします。20マイクロ秒だとリトライ間隔が短いような気がするかもしれませんが、リトライ回数は1秒に50回ですので言うほどでもないです。 arguments.callee は関数内でのみ参照可能で、実行中の関数自身への参照を保持します。上の例では arguments.callee は無名関数への参照となります。setTimeout に arguments.callee を渡すその関数を
![arguments.calleeとsetTimeoutを使ってJavaScriptのリトライ処理を簡単に書く方法](https://cdn-ak-scissors.b.st-hatena.com/image/square/cdc2a6fcbb07d858cf841199197a8633cecee9f1/height=288;version=1;width=512/http%3A%2F%2Fsakuratan.biz%2Fblog%2Fwp-content%2Fplugins%2Fwp-ogp%2Fdefault.jpg)