哪一个更有效率? $ el.append(newView.render()EL);或$ el.append(newView.render()。$ el);

时间:2014-03-20 16:10:55

标签: javascript backbone.js

请考虑以下代码段。

var SomeView = Backbone.View.extend({

    collection: new SomeCollection(),

    render: function() {
        this.$el.empty();
        this.collection.each( function (modelInCollection) {
            var newView = new AnotherView({ model: modelInCollection });
            this.$el.append(newView.render().el);
        }, this);
});

替换

会更有效(记忆,计算)吗?
this.$el.append(newView.render().el);

this.$el.append(newView.render().$el);

?哪一种更优雅,为什么?

1 个答案:

答案 0 :(得分:3)

第一个 - this.$el.append(newView.render().el);会更有效率,因为append()的底层代码需要DOM节点或jQuery元素,但最终需要将jQuery元素转换为DOM节点,因为追加()最终将使用需要DOM节点的appendChild()。

效果测试:

因此,它似乎只是一种微观优化。运行jsPerf测试,附加DOM节点或jQuery对象基本相同,结果总是在误差范围内。

http://jsperf.com/append-jquery-object-vs-append-dom-node

相关问题