javascript - Backbone : using partial fetch versus 1 collection through the whole lifespan of the application

标签 javascript asp.net-mvc-3 backbone.js

我对集合的获取有点困惑, 按照我现在的看法,语义上的 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(); 会转到在 asp.net 中构建的 url beeing /movies mvc3 和 - 本示例已简化 - 基本上返回数据库中的所有电影。

现在,假设我创建了一个仪表板 View ,除其他外,它应该显示 10 部最新电影

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

如果我选择后者,并在整个应用程序中使用 1 个集合,我如何保持它最新?其他用户可能会同时添加电影,而无需使用套接字进行实时可视化。

我想得越多,我就越明白哪里没有使用完整的集合,所以要么查询服务器并仅获取必要的内容,要么获取全部内容并查询集合将是实际的问题。

最佳答案

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

关于javascript - Backbone : using partial fetch versus 1 collection through the whole lifespan of the application,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7863024/

相关文章:

javascript - 单击并使用 add/removeClass 更改 header 的类

jquery - 有没有办法在razor中使用jquery代码?

javascript - 使用下划线随机选择并从集合中删除

javascript - 尝试通过传入函数来绑定(bind)回调会引发错误

asp.net - 无法创建接口(interface)的实例

backbone.js - 对使用 Backbone.js 和 Tastypie 从服务器预加载集合一无所知

javascript - 滚动功能看不到整个页面

javascript - 范围 javascript - 字符串和数组/对象时不同

javascript - 只切换最近的 DIV

javascript - 使用 MVC3 嵌套 JSON