迭代创建一个新的DOM元素

时间:2017-02-13 12:43:36

标签: javascript dom optimization iteration

我在高负载迭代时遇到问题。

CommonMethods.showLoader();

var html = $("<div>");

for (var i = 0, length = folder.tracks.length; i < length; i++) {            
    var clone = Track.create(folder.tracks[i], folder.folder_id);
    html.append(clone.show());
}      

$tracks.html(html);
CommonMethods.hideLoader();

Track.create方法创建一个DOM元素并设置属性,同时返回一个jquery元素。

我的folder.tracks数组有大约3000个曲目,因此在添加到页面之前,脚本会创建大约3000个DOM元素。

CommonMethods.showLoader - 在创建新元素时显示加载程序 CommonMethods.hideLoader - 删除加载程序。

装载机未显示的问题。我试着记录他的外表,但是日志工作完美,加载器日志,他在迭代之前显示自己。如果我删除hideLoader方法,则在创建DOM元素并将其添加到页面后,加载器将显示。但是console.log显示他在迭代之前出现了。如何处理这个问题?

更新:我的showLoader函数

    showLoader: function() {

        console.log("loader was showed");

        $(".loader").show();
    },

UPDATE2

示例:https://jsfiddle.net/70b3x2uo/5/

0 个答案:

没有答案