¿Cómo puedo almacenar en caché el resultado de una llamada de búsqueda usando requireJs?

Tengo varias vistas cuyo resultado de representación depende de la misma colección y luego de otros modelos o colecciones:

Ejemplos:

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

En este momento, para resolver el problema, hago commonCollection.fetch para cada vista… y antes de renderizar la página, espero que cada modelo/colección esté lista para cada vista, como se explica en esta respuesta.
Pero dado que el resultado de commonCollection es el mismo, me gustaría almacenar en caché el resultado para usarlo en otras vistas.

¿Cómo puedo almacenar en caché el resultado de commonCollection sin usar variables globales? Estoy usando RequireJs

preguntado el 21 de mayo de 12 a las 19:05

1 Respuestas

no puedes simplemente anular fetch en la colección común para hacer el almacenamiento en caché?

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

Aquí hay un violín de un ejemplo más completo: http://jsfiddle.net/4A8Wu/2/

contestado el 22 de mayo de 12 a las 01:05

¿Dónde/cómo debo definir alreadyUpdated tener memoria de este resultado en mi commonCollection? Gracias - antonjs

@AntoJs Hice un violín que espero te ayude: jsfiddle.net/4A8Wu/2 - matt wonlaw

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.