Backbone.js 在主干网木偶中加载数据的最佳实践是什么?
我看到的大多数示例都是在应用程序加载时加载整个数据集合 我的第一个应用程序非常简单。I菜单区域包含可单击文章的列表,以及包含完整文章的文章详细信息区域。如果我有一系列的文章,我的数据最终可能会相当大 如果在一个巨大的集合中加载所有内容都不是一个好办法,那么有没有更好的例子可以告诉我如何延迟加载数据呢?我想要一个分页的文章集合(意味着最近的10个例子)。例如,当用户向下滚动时,我会加载下一个10或任何有意义的数字。网络上有这种技术的例子Backbone.js 在主干网木偶中加载数据的最佳实践是什么?,backbone.js,marionette,Backbone.js,Marionette,我看到的大多数示例都是在应用程序加载时加载整个数据集合 我的第一个应用程序非常简单。I菜单区域包含可单击文章的列表,以及包含完整文章的文章详细信息区域。如果我有一系列的文章,我的数据最终可能会相当大 如果在一个巨大的集合中加载所有内容都不是一个好办法,那么有没有更好的例子可以告诉我如何延迟加载数据呢?我想要一个分页的文章集合(意味着最近的10个例子)。例如,当用户向下滚动时,我会加载下一个10或任何有意义的数字。网络上有这种技术的例子 希望这能有所帮助。这与其说是一个木偶问题,不如说是一个关于哪
希望这能有所帮助。这与其说是一个木偶问题,不如说是一个关于哪些数据应该引导,哪些数据不应该引导的问题 一般规则是: 如果您总是需要数据,无论屏幕上显示什么,都可以引导数据。如果你不总是需要它,不要引导它 当然,这里面有一些细微的差别,你可以争论,但通常效果很好 至于带木偶的自举数据,当它有意义时。。。
Application.start
方法为此获取一个参数,并将其传递给所有初始值设定项
个人经验中的几点注意事项:
- 加载所有数据通常是数据库上的瓶颈,而不是客户端上的瓶颈。若你们能优化你们的数据库,那个么客户端可以轻松地处理几百篇文章,甚至更多
- 如果你希望你的应用程序最终也成为一个用Cordova或WebWorks包装的HTML5移动应用程序,那么任何引导都不适用,你需要动态加载所有数据
- 在移动设备上(与浏览器或cordova无关),不渲染屏幕外元素比不加载它们更重要。当然,要使用的内存仍然较少,但如果渲染整个集合,则渲染和滚动将是罪魁祸首,而不是内存
- 在桌面浏览器上,预加载数据可以提供更加流畅的体验。即使最初只加载前10篇文章,也要立即预取其余的相关数据
- 如果您的模型有很多“相关”的模型或数据,您可以使用
作为一种恶意攻击,但是这种方法对于大多数用例来说效率太低fetchRelated
- 如果您计划在显示文章详细信息时动态加载/卸载与文章相关的数据,我建议您在应用程序对象或视图中显式地管理这些数据。如果您想缓存数据(您应该这样做),可以使用主干缓存应用程序。在项目模型上使用一个简单的标志来指示是否提取了数据,就足以管理提取/缓存
- 如果您的数据是高度动态的,那么,至少在开始时为了保持简单,不要缓存,而是每次都获取动态部分
希望这有帮助。如果您有更具体的问题,请更新您的问题或发表评论。我不太担心集合中元素的数量,但担心集合中每个模型中数据的大小。
start
让我忙了一天!那是个舒适的地方。谢谢你,德里克。