我见过一些插件在滚动到页面底部时会加载更多内容,但其中大多数都链接到数据库中具有自动递增 ID 的列。我只需要使用 XML 文件来执行此操作。
有任何想法吗?
非常感激。
xml 文件在服务器上,但我想它可以用 jQuery 解析?我可以使用 ajax 并解析整个 XML 文件,但这会破坏无限滚动/延迟加载?
如果您将 XML 发送到客户端,这将导致浏览器解析它并构建一个 DOM。取决于它有多大(几千字节?兆字节?),这可能很快,也可能需要一段时间。默认情况下将所有 if 发送到浏览器也会占用您的带宽,是的,某种程度上违背了延迟加载的目的。
然而,无限滚动是一种 UI 范例,因此即使您总是将整个 XML 文件发送到浏览器,您也可以实现它。同样,这取决于您想要实现的目标 - 节省带宽或只是“即时”创建内容。
假设您将文件留在服务器上,因为它太大了:
来自无限滚动插件的假设请求可能看起来像
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 对其进行评估。
可能有量身定制的框架可以完成所有这些工作,但如果我要实现这样一个系统,上面的内容大致就是我会做的。