首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >哪个更有效?$el.append(newView.render().el);$el.append(newView.render().$el);

哪个更有效?$el.append(newView.render().el);$el.append(newView.render().$el);
EN

Stack Overflow用户
提问于 2014-03-20 16:10:54
回答 1查看 39关注 0票数 0

考虑下面的代码片段。

代码语言:javascript
复制
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);
});

替换(内存、计算)会更有效吗?

代码语言:javascript
复制
this.$el.append(newView.render().el);

使用

代码语言:javascript
复制
this.$el.append(newView.render().$el);

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-20 16:19:06

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

性能测试:

因此,这似乎是一个微观优化充其量。运行jsPerf测试(附加DOM节点或jQuery对象)本质上是相同的,结果总是在错误范围内。

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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22538836

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档