ログイン
i-mobile
記事の一覧
4.<[chaika]1.0.0a5 | [chaika]1.0.0b1>6.

2009-02-24

[][]JavaScript で sleep (nsIThread 版)

chaika のスレッド表示の負荷をおさえる実験で使っている方法で、元ソースは Mozmill

副作用がありそうでまだ試験中だけど、Piro さんが JavaScriptでsleepしたい、を実現する方法(require JavaScript 1.7) で似たようなことをしていたのでメモとして紹介。

function sleep(aWait) {
  var timer = { timeup: false };

  var interval = window.setInterval(function(){
    timer.timeup = true;
  }, aWait);

  var thread = Cc["@mozilla.org/thread-manager;1"].getService().mainThread;
  while(!timer.timeup){
    thread.processNextEvent(true);
  }
  window.clearInterval(interval);
}

使い方

  dump("1\n");
  sleep(1000); // 1000ミリ秒待つ
  dump("2\n");  
piro_or ●2009/03/09 03:54
おおっ…、と思って試してみたらこの機能はGecko 1.9以降限定なんですね。
Thunderbird 2用に使いたい場面があったので、ちょっと残念……
fls ●2009/03/11 00:51
残念ながら 1.9 以降用ですね。
1.8 でも nsIEventQueue でがんばればできるかもしれませんが…
コメントを書くには、なぞなぞ認証に回答する必要があります。

コメント

4.<[chaika]1.0.0a5 | [chaika]1.0.0b1>6.
●ウェブ検索●