編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

タイマーを使ってコストのかかる関数を遅延実行させる

function swap(items, firstIndex, secondIndex) {
    var temp = items[firstIndex];
    items[firstIndex] = items[secondIndex];
    items[secondIndex] = temp;
}

function bubbleSort(array, onComplete) {
    var pos = 0;
    (function () {
        var j;
        for (j = array.length; j > pos; j--) {
            if (array[j] < array[j - 1]) {
                swap (array, j, j - 1);
            }
        }
        pos++;
        if (pos < array.length) {
            setTimeout(arguments.callee, 500);
        } else {
            onComplete(array);
        }
    })();
}
var array = [3,1,4,2];
bubbleSort(array, function (v) { console.log(v)} );
function chunk(array, process, context) {
    var items = array.concat();
    setTimeout(function () {
        var item = items.shift();
        process.call(context, item);
        if (items.length > 0) {
            setTimeout(arguments.callee, 100);
        }
    }, 100);
}

var obj = { items : [] };
var items = [ 1,2,3 ];
chunk(items, function (value) {
    this.items.push( value * 10);
}, obj);
console.log(obj.items);

出典

http://www.slideshare.net/nzakas/writing-efficient-javascript


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

Last-modified: 2012-01-28 (土) 14:08:11 (1884d)