如何获得Backbone.js收藏集只存在于内存中(未持久化)
How to get a Backbone.js Collection live only in memory (not persisted)?
使用Backbone.js,我使用Collections在客户端和Ruby服务器之间获取和同步数据。这很好用。
现在我还想使用它来将数据存储在内存中(在本例中,它将是购物车中的文章集合)。
有没有一种方法可以在不将数据持久化到服务器或本地存储的情况下做到这一点,即让集合只存在于内存中?
每当我试图将集合的url属性设置为null值时,我都会得到一个Uncaught TypeError:无法调用null的方法"create"。所以…我想这不是正确的做法!
如果这不可能,让服务器和localStorage处理同一应用程序中的不同类的最佳设计是什么?
一开始很简单,只是不要使用fetch()
来填充Collection,而是使用reset()
。检查reset()文档。
但也许你开始遇到Collection.create()
、Model.destroy()
等问题。所以你必须小心使用这些方法。。也许你可以用Collection.add()
代替Collection.create()
,但我认为Model.destroy()
没有很好的替代品。
我认为解决问题的最优雅的方法应该是为内存集合和模型重写sync()
方法。
这是一个很好的猜测,写在空气中:
// code simplified and no tested
var MemoryCollection = Backbone.Collection.extend({
sync: function( method, model, options ){
options.success.apply();
}
})
但也许它可以帮助你开始朝着这个方向努力。
如果这是有效的,您仍然必须使用Collection.reset()
而不是Collection.fetch()
。
相关文章:
- 重复应用 d3 转换导致的内存泄漏
- 如何显示在给定极限内存在的所有素数
- IE7中的blockUI插件内存泄漏25kb
- Javascript闭包-如何防止内存泄漏
- 基于订阅的nosql内存数据库
- 显示:阻止/无html元素,css.not从内存中释放
- jQuery Draggable:内存泄漏
- 在post-expressjs之后持久化表单数据
- 元素过多的HTML内存使用情况
- 如何使用Javascript在FireFox中将html从内存动态加载到iframe中
- "检测到可能的EventEmitter内存泄漏”;使用Gulp+Watchify+Factor捆绑包
- Javascript图像数组预加载速度和从内存中删除
- 在Dojo类中递归调用setTimeout时是否存在内存泄漏
- VBA加载网页并提取内存中的数据
- 是内存泄漏
- 将处理程序留在img.onload上是内存泄漏
- Backbone+RequireJS:使集合持久化
- new Datamap() 在调用之间保持内存的共享状态
- 具有并发sse连接的node.js内存泄漏
- 如何获得Backbone.js收藏集只存在于内存中(未持久化)