2012-05-21 30 views
1

我有渲染結果取決於同一個集合多個視圖,然後其他型號或類別:如何使用requireJs緩存獲取調用的結果?

Examaples:

View1 -> model1, commonCollection 
View2 -> collection2, commonCollection 
View3 -> model3, commonCollection 

眼下,解決了我做commonCollection.fetch每個視圖的問題...並在呈現頁面之前,我等待每個模型/集合都準備好了,如this answer中所解釋的,每個視圖 。
但由於commonCollection的結果是相同的,我想緩存結果用於其他視圖。

如何在不使用全局變量的情況下緩存commonCollection的結果?我正在使用RequireJs

回答

2

難道你不能只是覆蓋fetch在常見的集合做緩存?

Backbone.Collection.extend({ 
    ... 
    fetch: function(options) { 
     if (alreadyUpdated) { 
     // do nothing 
     } else { 
      return Backbone.Collection.prototype.fetch.apply(this, arguments); 
     } 
    } 
    ... 
}); 

下面是一個更完整的示例的小提琴: http://jsfiddle.net/4A8Wu/2/

+0

凡/我應該怎麼定義'alreadyUpdated'產生這樣的結果的記憶在我的commonCollection?謝謝 – antonjs

+0

@AntoJs我做了一個小提琴,希望能幫助你:http://jsfiddle.net/4A8Wu/2/ –