如何正确使用javascript的requestAnimationFrame?

时间:2017-12-09 03:27:57

标签: javascript html dom requestanimationframe

当Massive DOM修改发生时,使用requestAnimationFrame更改DOM的最佳方法是什么?

第三种选择对我来说似乎是最好的,对吗?

第一个选项:

    var a = {
        key1 : 'value1',
        key2 : 'value2',
        [...]
    };

    window.requestAnimationFrame(function() {
        if(someConditions) {
            $('elem').html(a.key1);
        }

        if(otherConditions) {
            $('elem').html(a.key2);
        }

        if([...]) {
            [...]
        }
    });

第二个选项:

    var a = {
        key1 : 'value1',
        key2 : 'value2',
        [...]
    };

    if(someConditions) {
        window.requestAnimationFrame(function() {
            $('elem').html(a.key1);
        });
    }

    if(otherConditions) {
        window.requestAnimationFrame(function() {
            $('elem').html(a.key2);
        });
    }

第三种选择:

    var a = {
        key1 : 'value1',
        key2 : 'value2',
        [...]
    };
    var stack = [];

    if(someConditions) {
        stack.push(a.key1);
    }

    if(otherConditions) {
        stack.push(a.key2);
    }

    var doTheJob = function() {
        var value = stack.shift();

        window.requestAnimationFrame(function() {
            $('elem').html(value);

            if(stack.length) {
                doTheJob();
            }
        });
    };

我希望代码说明情况(每次调用$('elem')但如果我添加代码,我将无法发布,因为il看起来主要是代码......)。

0 个答案:

没有答案