1
Dans l'extrait de code suivant, dois-je mettre en cache $ (« # chargement ») dans un autre objet (Appelons il JqueryDOMCache) ou Backbone fait pour moi? Je veux rendre l'application performante car j'ai 300 interactions DOM bizarres.Comment mettre en cache des éléments DOM avec backbone.js?
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;
});
Merci Brian, de sorte que chaque .render() appel ne crée pas un nouvel objet jquery? Dans ce cas, si j'ai plusieurs appels jquery dans ma fonction de rendu, chaque objet reste en cache ou seulement l'objet de niveau supérieur? – papdel
Il ne crée pas un nouvel objet. Il n'y a pas de magie dans la fonction de rendu. Ce que vous écrivez est ce que vous obtenez. Donc, le 'show' jQuery prend simplement le style' display: none' sur le 'el' qui est déjà dans le DOM. Aucun élément nouveau est créé :) Merci –
Brian, en passant par les Backbone.js source révèle beaucoup - comme ça ... // élément recherche dont la portée a à DOM éléments dans la vue actuelle. // Ceci devrait être préféré aux recherches globales, si vous avez affaire à // une vue spécifique. var selectorDelegate = function (sélecteur) {$ retour (sélecteur, this.el); }; – papdel