使用大型Backbone集合

isN*_*247 17 pagination backbone.js

我们正在设计一个骨干应用程序,其中每个服务器端集合都有可能包含数万条记录.作为类比 - 考虑进入电子邮件应用程序的"已发送邮件"视图.

在我见过的大多数Backbone示例中,涉及的集合最多有100-200条记录,因此获取整个集合并在客户端中使用它相对容易.我不相信这会是一个更大的集合的情况.

有没有人在大型服务器端集合上使用Backbone做过任何工作?

  • 您是否遇到过特定集合大小的性能问题(特别是在移动设备上)?
  • 您从服务器获取了多少决定?
  • 你下载所有内容还是仅下载一部分?
  • 你在哪里放置任何自定义机制的逻辑(例如集合原型?)

Elf*_*erg 11

  1. 是的,大约10,000件商品,旧浏览器无法很好地处理显示器.我们认为这是一个带宽问题,但即使在本地,由于带宽和高性能机器一样多,Javascript也有点过时了.这在Firefox 2和IE7上都是如此; 我从未在大型系统上测试过它.

  2. 我们试图取出一切.这不适用于大型数据集.Android的浏览器特别有害.

  3. 我们的数据采用树形结构,其他数据取决于树结构中数据的存在.由于来自其他用户或程序的其他部分的操作,数据可能会发生变化.最终,我们使树结构仅获取当前可见的节点,并且系统的其他部分验证了它们独立依赖的数据集的有效性.这是竞争条件,但在实际部署中我们从未发现任何问题.我本来希望在socket.io这里使用,但管理层并不理解或信任它.

  4. 由于我使用Coffeescript,我只是从Backbone.Collection继承并创建了我自己的超类,它也实例化了一个自定义sync()调用.调用超类方法的语法在这里非常有用:

    class Dataset extends BaseAccessClass
        initialize: (attributes, options) ->
            Dataset.__super__.initialize.apply(@, arguments)
            # Customizations go here.
    
    Run Code Online (Sandbox Code Playgroud)