1
在下面的代碼片段中,是否需要在另一個對象中緩存$(「#loading」)(讓我們稱它爲JqueryDOMCache)還是Backbone爲我做了這個?我想讓應用程序的性能達到300個奇怪的DOM交互。如何使用backbone.js緩存DOM元素?
var BeforeApploadView = Backbone.View.extend({
el : "#loading",
render : function(){
$(this.el).show();
},
hide : function(){
$(this.el).hide();
}
});
var App = (function($){
var app = {};
app.start = function(s){
var beforeLoadView =new BeforeApploadView();
beforeLoadView.render();
};
return app;
});
感謝Brian,所以每個.render()調用不會創建一個新的jquery對象?在這種情況下,如果我在渲染函數中有多個jquery調用,那麼每個對象都保持緩存或只是頂級對象? – papdel
它不創建新的對象。渲染功能中沒有魔法。你寫的是你得到的。因此,jQuery'show'只是簡單的將'display:none'風格從已經在DOM中的'el'移開。沒有新的元素創建:) –
感謝Brian,通過源代碼backbone.js發現了很多 - 像這樣... //元素查找,作用域爲當前視圖中的DOM元素。 //如果你正在處理 //這是一個特定的視圖,那麼這應該是全球查找的首選。 var selectorDelegate = function(selector){ return $(selector,this.el); }; – papdel