我需要編寫一個文本文件查看器(不是目錄樹,但是實際的文件內容)以供瀏覽器使用。它將用於查看大文件。我想讓用戶能夠實際上呃,瀏覽文件,即上一頁按鈕,而每個頁面將只顯示文件的一部分。在瀏覽器中查看大文本文件
兩個問題:
- 反正通過POST(或東西),以便通過文件描述符每一頁我可以繼續從已打開的文件讀取,而不是開始從頭再來(再次 - 巨大的文件)
- 有沒有辦法向後讀取文件?在瀏覽文件時非常有用。
任何其他實施的想法是非常受歡迎的。謝謝
我需要編寫一個文本文件查看器(不是目錄樹,但是實際的文件內容)以供瀏覽器使用。它將用於查看大文件。我想讓用戶能夠實際上呃,瀏覽文件,即上一頁按鈕,而每個頁面將只顯示文件的一部分。在瀏覽器中查看大文本文件
兩個問題:
任何其他實施的想法是非常受歡迎的。謝謝
保持文件在請求之間打開並不是一個好主意 - 您不必「重新開始」 - 只需維護一個偏移量並使用fseek()跳轉到該偏移量即可。這樣,你也可以實現「向後跳躍」。
一次性將大文件剪切成較小的文件,然後將小文件提供給用戶。
你應該考慮分頁。如果您擔心用戶因需要頻繁點擊「下一個」而感到沮喪,則可以使每個塊合理地大(因此每20分鐘一個普通閱讀器頁面)。
另一種選擇是分塊編碼傳輸類型:Wikipedia Entry。這將使您的服務器能夠快速響應併爲用戶提供某些內容,同時通過網絡傳輸文件的其餘部分(而不是需要讀取文件並一次發送全部內容的服務器)。與通常提供文件相比,這可以顯着提高感知性能,但仍會爲服務器消耗大量帶寬。
您可能可以使用Javascript和AJAX模擬大型文檔,但只能一次發送多個文件以獲得更好的性能。
請考慮發送幾頁的文檔,並將偵聽器附加到瀏覽器的滾動事件中。隨着時間的推移或用戶向下滾動AJAX更多的塊。這就產生了幾個煩人UX邊緣的情況下,如:
真的不過,你可能最好關閉與中型頁面分頁。這是一個很好理解的設計模式,與其他選項相比(至少與其他選項相比)實現和實現速度更快。
希望有幫助!
我實際上使用了fseek()解決方案,它很直觀且很容易實現。關於大量的分頁問題 - 我已經添加了goto-line選項,所以它很酷:)我可能讓你感到困惑,但我不需要這樣讓讀者留在我的網站上 - 讀者不想成爲在那裏首先是大聲笑。這是一種簡單的方式,向我們公司的其他海外員工展示一些大文本文件 - 所以不需要太花哨:) 感謝您的詳細解釋 – MeLight 2009-08-17 14:55:45
就是這樣。像魅力一樣工作:D – MeLight 2009-08-17 14:50:49