主干 JS 分页

发布于 2024-12-11 13:32:45 字数 315 浏览 0 评论 0原文

我一直在尝试使用 Rails 来使用主干 JS,并且非常喜欢它组织前端的方式。我已经实现了类似于这里的分页解决方案 https://gist.github.com/705733

我只是想知道什么集合的作用是以及它如何与分页结果一起工作。目前,当我从数据库中获取新对象时,它们似乎会覆盖当前集合中的内容。但是,我可以使用 {add: true} 添加到当前集合。这将使分页变得更加困难。那么缓存结果怎么样?我应该为每个页面创建一个新集合吗?

如果有人做过这件事或者知道如何去做,将会有很大的帮助。

I have been trying out backbone JS with rails and really like the way it organises the frontend. I have implemented a pagination solution similar to the one here https://gist.github.com/705733

I'm just wondering what the role of a collection is and how it should work with paginated results. Currently, it seems that when I fetch new objects from the database they override what's in the current collection. However, I could use {add: true} to add to current collection. This would then make pagination more difficult. And how about caching the result? Should i create a new collection for every page?

If anyone has done this or knows how to go about it would be of great help.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

黎歌 2024-12-18 13:32:45

如果您的目标是查询&当请求页面时显示项目,您可以执行类似的操作(伪代码):

pages = {}


// when page N is needed
function fetch_page(n) {
 if (!pages[n]) {
    pages[n] = new ItemsCollection({page: n})
    pages[n].fetch();
 }     
}

因此,您为每个页面保留一个集合。

如果您还需要迄今为止获取的所有项目的集合,只需保留一个 - 并在每次从服务器获取获取的项目时将其添加到其中。

If your objective is to query & display items when a page is requested, you could do something like (pseudocode):

pages = {}


// when page N is needed
function fetch_page(n) {
 if (!pages[n]) {
    pages[n] = new ItemsCollection({page: n})
    pages[n].fetch();
 }     
}

So you keep a collection for each page.

If you also need a collection of all the items fetched so far, just keep one - and add fetched items to it every time you get them from the server.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文