Jquery无限滚动和XML

时间:2011-02-22 14:41:45

标签: jquery xml infinite

我看到一些插件在滚动到页面底部时会加载更多内容,但是大多数插件都链接到数据库中具有自动增加ID的列。我只需要使用XML文件即可。

有什么想法吗?

非常感谢。

1 个答案:

答案 0 :(得分:0)

  

xml文件在服务器上,但它   可以用jQuery解析我想?   我可以使用ajax并解析整个   XML文件,但这会打败   无限滚动/延迟加载?

如果您将XML发送到客户端,则导致浏览器解析它并构建DOM。根据它的大小(几千字节?兆字节?),这可能很快,或者可能需要一段时间。默认情况下将所有if发送到浏览器也会占用你的带宽,是的,以某种方式破坏了延迟加载的目的。

无限滚动是一个UI范例,因此即使您始终将整个XML文件发送到浏览器,也可以实现它。同样,这取决于您想要实现的目标 - 节省带宽或只是“动态”创建内容。

假设您将文件保留在服务器上,因为它太大了:

  • 让服务器将其加载到线程安全(!)DOM对象中。不要破坏应用程序生命周期中的对象,通过存储在应用程序(或会话)中为每个请求重用它。实际上,这会创建“数据库”。
  • 构建一个访问XML的代理页面,并将其中的一部分返回给浏览器。您可以使用XPath从XML DOM对象中检索请求的位。
  • 使用您最喜爱的无限滚动jQuery插件,并调整代理页面以接受其请求参数。

来自无限滚动插件的假设请求可能看起来像

http://server.name/path/data.aspx?start=516&count=10

然后您的data.aspx将使用XPath查询从第516个元素中检索10个XML元素:

/root/data[position() >= 516 and position() < 516 + 10]

然后,您可以从中构造HTML或将其作为原始XML发送,并通过客户端上的jQuery进行评估。

可能有定制的框架可以完成所有这些,但如果我要实现这样的系统,上面的内容大致就是我要做的。