BackboneJs:在应用程序的整个生命周期中使用部分获取而不是 1 个集合

BackboneJs: using partial fetch versus 1 collection through the whole lifespan of the application

本文关键字:获取 用部 集合 应用程序 周期 生命 BackboneJs      更新时间:2023-09-26

我对集合的获取有点困惑,我现在看到的方式,语义上 fetch 会从服务器获取所有可用的模型但有时您只需要前 5 个,或者您想显示每 10 个项目(例如分页(

例:

Movie = Backbone.Model.extend({
    idAttribute: "Id"
});
MovieList = Backbone.Collection.extend({
    model: Movie,
    url: "/api/movies"
});
$(function(){
    movies = new MovieList();
    movies.fetch(); // simplified example, i know best practice is not to fetch on document ready...
});

这个节目是一个名为 Movie 的模型,在 Movielist 集合中,调用movies.fetch();转到 URL beeing /movies,该 URL asp.net MVC3 中内置,并且 - 在本例中进行了简化 - 基本上返回数据库中的所有电影。

现在,假设我创建了一个仪表板视图,该视图除其他外,应该显示 10 部最近的电影

是否需要再次进行提取,但不知何故传入我只想要前 10 名?或者,我是否需要在应用程序的整个生命周期内处理所有电影的 1 个集合?只是查询集合?

如果我会使用后者,并通过整个应用程序使用 1 个集合,我如何使其保持最新? 其他用户可能在此期间添加了电影,而没有使用套接字进行实时可视化。

我想得越多,我得到的想法就越多,没有使用完整的集合,所以要么查询服务器并只获取必要的,要么一次性获取所有集合并查询集合将是实际问题。

我还没有这样做,但也在考虑。如果保留 1 个集合,我可能会设置一个电影更改服务,该服务返回指示新电影、修改和删除的命令对象。使用"since="参数长轮询此服务,以获取自上次检查以来的更改,并使用响应更新集合。这应该触发更改事件,以便视图知道更新。