【发布时间】:2011-06-09 02:16:48
【问题描述】:
我正在尝试为具有数千个页面的大型网站动态生成站点地图。
是的,我考虑过离线生成站点地图文件并简单地静态提供它,我最终可能会这样做。但我认为这是一个普遍有用的问题:
如何从 Wicket 中的数据库流式传输大量数据?
我按照Wicket SEO page 的说明进行操作,并能够使用 DataProvider 获得一个动态站点地图实现。但它不能扩展 - 当它调用我的 DataProvider 的 iterator() 方法时,它会耗尽内存,而 count arg 等于我返回的对象总数,而不是在块中迭代它们。
我认为解决方案在于WebResource/ResourceStreamingRequestTarget。但是这些类需要一个IResourceStream,最终归结为提供一个InputStream 实现,它以字节而不是数据库记录来处理。在这种情况下,我不知道如何实现 length() 方法,因为这需要提前访问每条记录以计算总长度。
【问题讨论】: