Я пишу приложение BackboneJS, где каждая из шести вкладок представлена своими представлениями. Должен ли я сохранять экземпляр представления и просто вызывать его функцию render()
всякий раз, когда пользователь нажимает на вкладку, на которой он уже был? Или создать новый экземпляр и получить доступ к шаблону, который jQuery кэшировал для меня при первом рендеринге?
Если я сделаю последнее, мне все равно нужно будет убедиться, что другая коллекция не извлекается через мой JSON API, поскольку это делается во время инициализации некоторых представлений.
Сейчас я храню все экземпляры вида в моем контроллере, но мне было интересно, встроен ли он как-то или есть лучшие альтернативы.
Приветствие.
Обновление: вот моя loadCachedView
функция, которую я использую в своем контроллере:
loadCachedView: function (name, view, collection){
if (!this.views[name]){
if (collection){
this.collections[name] = new collection();
}
this.views[name] = new view({collection: this.collections[name]});
} else {
this.views[name].render();
}
},
Итак, при рендеринге вида я просто иду: this.loadCachedView('settings', SettingsView, SettingsCollcetion)
.