我需要编写一个文本文件查看器(不是目录树,而是实际的文件内容),以便在浏览器中使用。它将用于查看大文件。我想让用户能够实际访问,浏览文件,即prev page&下一页按钮,而每个页面只显示文件的一部分。
两个问题:
非常欢迎任何其他实施方案。感谢
答案 0 :(得分:3)
在请求之间保持文件打开不是一个好主意 - 您不必“重新开始” - 只需保持一个偏移量并使用fseek()跳转到该偏移量。这样,你也可以实现“向后跳跃”。
答案 1 :(得分:1)
将您的大文件剪切成较小的文件一次,然后将小文件提供给用户。
答案 2 :(得分:0)
你应该考虑分页。如果您担心用户因需要经常点击“下一个”而感到沮丧,那么您可以使每个块相当大(因此普通读者每隔20分钟就会页面化)。
另一个选项是Chunked-Endoding传输类型:Wikipedia Entry。这将允许您的服务器快速响应,并在用户通过网络流式传输文件的其余部分时为用户提供读取内容(而不是服务器需要读取文件并一次性发送)。与正常提供文件相比,这可以显着提高感知性能,但仍会为您的服务器消耗大量带宽。
您可以使用Javascript和AJAX模拟大型文档,但只能一次发送一些文件以获得更好的性能。
考虑发送几页文档,并将监听器附加到浏览器的滚动事件中。随着时间的推移或当用户向下滚动AJAX更多的块时。这会产生一些恼人的UX边缘情况,例如:
实际上,你可能最喜欢中等页面的分页。这是一个非常好理解的设计模式,相对容易(至少与其他选项相比)来实现和快速实现。
希望有所帮助!