Backbone.js Singleton Collection

时间:2014-04-03 06:37:12

标签: javascript backbone.js requirejs

我正在使用Backbone.js和require.js构建应用程序。我的集合通过fetch()函数从后端获取数据。现在我有一个案例,其中fetch功能很昂贵,而且这个特定集合的数据不会发生变化,而且我会有更多的集合。所以我想将数据/集合保存在内存中。但我在实施中苦苦挣扎。我想保持require.js给出的延迟加载。什么是平常和"清洁"处理这个的方法?

1 个答案:

答案 0 :(得分:1)

使用javascript闭包,例如:

var getCollection = (function(){
  var coll;

  return function(){
    if( ! coll){
      coll = new MyCollection();
      coll.fetch();
    }
    return coll;
  }
}());

第一次调用getCollection时,将获取该集合。然后,每个后续调用都将获得缓存值。

有关这些模式的更多信息,请查看" Javascript模式"作者:Stoyan Stafanov(http://shop.oreilly.com/product/9780596806767.do