这是我的场景:
我正在使用 Backbone.js。
我有几个大型数据集合,我不想一直保存在内存中。因此,涉及始终将我所有集合中的所有模型保存在内存中的解决方案并不好。
我需要能够显示和/或编辑从这些集合中选择的任意记录,并且我需要同一模型的多个视图来指向同一记录(因此它们将保持同步)。因此,最好从主集合中提取这些模型,而不是 Model.fetches。
现在,通过将 ajax数据设置与{add: true}选项结合使用,我似乎可以根据需要使用 Collection.fetch 来提取这些记录。如果它能完成工作,那将使我达到我想要的一半。
麻烦的是,在任何给定的时间点,我可能需要为这些集合之一拉出一个选择器列表视图,并临时显示该特定集合的所有记录(或者,如果它真的是一个分页列表,大的)。当我需要全部展示它们时,我可以获取整个集合(或集合的一页)——太好了。但是,当我完成了选择器视图时,我需要清除那些额外的记录。我如何擦洗它们,而不会丢失我之前获取的个人记录模型?
到目前为止,我梦想的最佳解决方案是保留一组我的临时记录,并将其传递给集合,当我调用 reset 来清理它时。这还需要我在这些模型上保留某种引用计数,所以我知道何时将它们从集合中删除。对我来说,这似乎是很多簿记工作。有没有更清洁的方法来处理这个?