JSDeferred
そういえば、あらかじめデータは取得しておきたいけど、表示自体は遅延したい、みたいな場合 (ホバーツールチップみたいなやつ) にもめっさつかえるなぁねむい。
var d = null;
anElement.addEventListener("mouseover", function (e) {
if (d) d.cancel();
// http.get はおこなわれるが、少なくとも 1 秒遅延してから表示する
d = parallel({
wait: wait(1),
value: http.get("foobar")
}).next(function (o) {
show(e.pageX, e.pageY, o.value); // show はどっかで定義
});
}, false);
anElement.addEventListener("mouseout", function (e) {
if (d) d.cancel();
}, false);これだとまだまずいけど (mouseover が発生しまくるから//http.get をキャッシュつきにラップすればスマートかも) wait(1) してからロードしにいくみたいにするより、これだと同時によみこむから待ち時間がへる (その変わりリクエストが必ずとんでサーバに負荷かかる)