javascript - JQuery 不会在每次迭代中追加以避免 DOM 重绘

标签 javascript jquery performance dom

我有这个 jquery 代码,它可能会导致 DOM 在迭代的每一步重绘。 我怎样才能只执行一次?

$.each(d.sponsoren, function(k,v) {
        $("#sponsoren").parent().append( $("<div/>").append($("<a/>").attr("href", v.l).append($("<img/>").attr("src", v.im).css("margin","1").css("border","0"))) );
    });

最佳答案

将 dom 节点保留在内存中,直到 bucle 完成,然后将内存中的节点追加到 DOM

var $tempnode = $('<div />');
$.each(d.sponsoren, function(k,v) {
        $tempnode.append( $("<div/>").append($("<a/>").attr("href", v.l).append($("<img/>").attr("src", v.im).css("margin","1").css("border","0")));
});
$("#sponsoren").parent().append( $tempnode );

关于javascript - JQuery 不会在每次迭代中追加以避免 DOM 重绘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21815907/

相关文章:

javascript - 使用进度事件监听器覆盖 Backbone 同步

javascript - Reactjs 添加和删除输入字段

Jquery 将一个父 div 悬停在它的 2 个孙子和 1 个子元素上

javascript - ReactJS 与 Jquery 数据表问题

javascript - jquery - 将toggleClass限制为2个元素

javascript - 数据显示正确,但控制台显示 "Cannot read property ' map '未定义”

javascript - 从unix时间戳获取格式化日期

javascript - 为什么硬件加速 CSS 动画在主线程中花费了太多 "composite layer"次?

php - 出于速度和效率目的通过引用传递参数

php - 100,000 次写入的 Redis 性能