如何使用Backbone.Paginator.js运行多个实例?

时间:2012-07-01 17:29:19

标签: javascript jquery backbone.js underscore.js infinite-scroll

我正在尝试使用Backbone.Paginator.js在同一页面上运行多个应用程序(多个paginator实例)。

I created a test page.(导航至backbone.paginator/examples/netflix-infinite-paging)。

我将代码保留为app.js并创建app2.js,这是app.js的克隆,但所有javascript代码都位于一个文件中,并且应用已重命名为APP2。

两个实例在第一次加载页面时起作用,但后续请求/刷新只加载app2.js的数据。

是否可以在同一页面上运行多个实例?

  • 我对使用自动分页(无限/无限滚动)感兴趣 我试图使用Paul Irish的jQuery Infinite Scroll plugin但是 我无法让它发挥作用。
  • 我正在启动插件以便在文档就绪上运行(但没有 工作,如预期的那样),但也运行app2中的代码 ResultView,也不起作用。

关于如何获得自动分页无限滚动解决方案的任何想法?


更新:在跨不同浏览器进行进一步测试后,似乎问题可能是缓存问题/差异。例如,在Safari中,它在刷新页面时有时(随机)工作。我不知道如何调试。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

问题: 1-您是否在代码库中包含了jQuery Javascript框架依赖项? 2-我已经下载了zip文件,在本地Xammp上运行它似乎是一个下载的演示而不是测试页面,你能否从你的问题附带的压缩文件中确认哪个页面是你的测试页面? 3-你可以在jsfiddle中创建一个模型(如果有一些服务器端代码发生)吗? 4-为无限滚动jquery插件提供的链接已损坏,应为:https://github.com/joneath/infiniScroll.js

如果你想让jQuery paginator插件独立,你可能想要考虑容器元素来触发它

...

从建议的链接,我认为我们应该试验一下。否则,您可能想要为浏览器创建一个cookie或其他内容,以便记住多个实例上插件的更改。以下是一些想法?

1#

          Backbone.InfiniScroll(collection, **options**)

在渲染Backbone视图后实例化新的InfiniScroll对象。

myView = Backbone.View.extend({
  initialize: function(){
    _.bindAll(this, "render");

this.render();
this.infiniScroll = new Backbone.InfiniScroll(this.collection, {success: this.appendRender});

} )};

2#从选项菜单中一目了然

            target: $(window), 

也许我们应该尝试:

  $(body).find('#container1'),

- 或 -

 $(window).children('div').hasClass('container'),

只是一些想法,我自己没有尝试过 -

3#您可能希望将(1)设置为javacript函数并根据类或其id来触发它,以便在所需容器上初始化滚动。

这就是我可以通过快速看一看的所有想法,但如果它有所帮助或至少给出一些指示,请随时回复。

4#另一个想法是myView可以是一个带有Javascript时间戳ID的变量,这样你就可以确保唯一性,因为你正在调用new,那么你可以为你的视图运行多个插件实例。 / p>