我有一個頁面,從另一個域下載一個大的HTML文件,然後將其提供給用戶。該文件大約100k - 10MB,通常需要大約5分鐘。什麼是想做這樣的事情,使用戶體驗更好。更好的用戶體驗的網站在asp.net MVC
- 下載文件
- 如果文件沒有在10秒內下載,然後顯示一個頁面,告訴用戶該文件被下載
- 如果服務器完成下載1秒那麼它將服務已下載html
可以這樣做嗎?我需要使用異步功能嗎?
更新問題:下載的文件是一個HTML文件
我有一個頁面,從另一個域下載一個大的HTML文件,然後將其提供給用戶。該文件大約100k - 10MB,通常需要大約5分鐘。什麼是想做這樣的事情,使用戶體驗更好。更好的用戶體驗的網站在asp.net MVC
可以這樣做嗎?我需要使用異步功能嗎?
更新問題:下載的文件是一個HTML文件
我想你應該:
這聽起來像你需要使用一個等待頁面,每隔一段時間刷新一次,並顯示下載狀態。例如,可以使用System.Threading.Task在單獨的線程上運行下載。
無需刷新整個頁面...而是通過ajax-call輪詢服務器上的下載器服務以瞭解狀態和進度。 – 2010-12-12 20:08:03
是的,聽起來不錯:-) – Chad 2010-12-12 20:28:11
爲了提供「異步」文件下載,請嘗試Google正在使用的技巧:創建一個隱藏的iframe並將其設置爲要下載的文件的源代碼。然後,您可以在通過iframe下載文件的同時在原始頁面上運行JavaScript。
谷歌是真的這麼做嗎? – Thiago 2012-06-08 16:34:40
1號的問題是有些時候下載速度非常快(在1秒內),它應該只是提供下載文件。 – Joanne 2010-12-12 19:48:36
我不知道步驟1是如何產生問題的......如果文件在1秒內下載完成,那麼用戶也會在1秒後得到下載鏈接。 – 2010-12-12 20:09:58
我的不好。應該澄清該文件是HTML。所以如果服務器在1秒內完成下載,那麼它將提供下載的html。 – Joanne 2010-12-12 20:15:35