2015-05-25 3 views
5

В основном, что я пытаюсь сделать, это найти лучший способ управлять всеми моими взглядами. Так что все мои взгляды закрываются и создаются, когда это необходимо .. И из-за этого я создал отдельный менеджер внутри моего Backbone.Router экземпляра, который заботится обо всех моих представлениях следующим образом.Режимы подкачки -managing app

router.js

AppRouter.prototype.initialize = function() { 
      ....... 
      var eMgr = _.extend({}, Backbone.Events); 
      var vMgr = new ViewManager(); 

      vMgr.add(new vTopMenu({eMgr: eMgr})); 
      vMgr.add(new vTooltip({eMgr: eMgr})); 

      app_router.on('route:MainMenu', function() { 
       vMgr.close_all_views(function(){ 
        vMgr.add(new vmainMenu({eMgr: eMgr})); 
        vMgr.render_all_views(); 
       }); 
      }); 

      app_router.on('route:showMap', function() { 
       vMgr.close_all_views(function(){ 
        vMgr.add(new vMapMenu()); 
        vMgr.render_all_views(); 
       }); 
      }); 
... 
} 

Как вы можете увидеть TopMenu и Tooltip созданы вид только один раз, как я не ожидаю, что будет какой-либо необходимости изменения их содержания. И я также хотел бы избежать пробелов во время загрузки просмотров ...

Я не уверен, что это хорошая идея, хотя все остальные виды закрываются и повторно запускаются один раз Я перемещаюсь с одного маршрута на другой.

Итак, вопрос в том, хорошая практика, чтобы эти представления были настроены таким образом? Или я должен всегда воссоздавать представления, когда запускается какой-либо маршрут?

ответ

0

Некоторые виды могут быть кэшированы, если необходимо. Преимущества кэширования зависят от того, какой контент вы показываете в представлении. При принятии решения о размещении представления в кеше необходимо учитывать несколько аспектов:

  • Размер большого кеша может повлиять на производительность, поэтому выбирайте только те, которые часто используются для кеширования.
  • Кэширование важно для тех видов, которые загружают дополнительные ресурсы.
  • Знайте, что неиспользованные представления могут использовать ресурсы памяти.

Кроме того, для обоих кэшированных и некэшированных случаях, вы должны помнить:

  • Он также может занять значительное время, чтобы вновь сделать вид. Те виды, которые трудно отобразить, могут быть просто скрыты, а не удалены.
  • Zombie views. Старая точка зрения должна быть безопасно закрыта, с развязыванием событий и т. Д.
Смежные вопросы