我想通过Web界面向用户显示一个大文本文件(特别是100MB日志文件),而不需要用户必须下载整个文件.显然将整个文件返回到某人的网页浏览器是不明智的,所以我的理论是使用Ajax取决于用户滚动文件的部分文件,类似于Google Maps提供地图"窗口"的方式.
我的应用程序服务器是PHP,我相当确定我可以执行适当的搜索并读取文件并通过XHR将结果返回给应用程序,但我的Ajax框架是dojo,我想不出任何可行的标准dijit我试图弄清楚如何最好地捏造某些东西.
我应该派生自己的小部件吗?那里有我不知道的东西吗?如果我构建自己的自定义小部件,它应该采用什么样的结构,是否有任何好的资源来开发dojo/dijit的自定义小部件?还有其他想法吗?
这似乎是对您可能需要的内容的补充,我建议您使用 li,因为您最终会想要在每一行上执行一些操作,很可能每一行都是相关的。
滚动很好,但您也可以通过分页对界面进行 blit,这意味着他们单击下一页、上一页,然后您获取它,然后更新视图。这是最简单的方法。通过滚动,您需要在当前可见线上方和下方获得更多内容以实现无缝滚动。
例如,如果您想显示 25 行,则需要在第一次获取 25 + 底部焊盘,并将底部焊盘中显示的行定义为发出新事件信号以下载额外的 25+ 底部焊盘的阈值项目。
对于 100mb 的文件,很快就会变得迟缓,因此您必须清除以前的条目,并定义一个新的顶部填充来发出获取反向请求的请求。也就是说,第一个请求:获取 25 + 底部焊盘,第二个请求获取 25 + 底部焊盘,删除先前的 25 - 顶部焊盘。
需要注意的一件事是,当您执行此操作时,至少在 Firefox 中,它可能会变得不稳定,并且在几次加载后不会触发事件,因此您可能需要取消绑定/重新绑定您的均匀侦听器。我这么说只是因为我有一个朋友目前正在开发具有类似功能的东西,这些是他遇到的一些问题。
没有人会抱怨他们必须单击下一页/上一页,它会快速而干净,但会弄乱您的滚动,没有人会想使用您的小部件。
以下是有关该主题的一些其他资源:Old Ajax Scrollable Table - Twitter like load more tut -很好的滚动示例,阅读源代码-查看此 googlecode 项目
| 归档时间: |
|
| 查看次数: |
1567 次 |
| 最近记录: |