用戶上傳一個小文件或大約100 kB到ASP.NET 4.0應用程序可能有1000個工作單元。 服務器然後開始一次處理一個工作單元。 由於要求來自外部服務的信息,每個單元需要幾秒鐘才能完成。 如果使用事務成功完成所有單元,則結果僅保存到數據庫。 一旦完成,用戶可能會得到完成的清單。
問題是,用戶沒有得到確認,而是他的瀏覽器,我想由於超時而放棄。
未來的文件預計會增加幾百倍,增加了這個問題。
我想防止這種超時。
這裏有一些想法,我有:
- 優化代碼的運行速度。這已完成,不再是問題。
- 並行運行請求到外部服務。
- 稍微增加服務器超時。
- 讓用戶上傳文件,然後在文件處理完畢後向他發送一封包含結果的電子郵件。
- 以某種方式使頁面刷新並在等待時向用戶顯示一些進度信息,例如5%完成 - 在10分鐘內完成。
我該如何實現這最後一步,顯示進度信息並防止瀏覽器超時?
歡迎提出其他建議。
謝謝,
我幾天前回答了一個類似的問題:http://stackoverflow.com/questions/5871646/add-a-realtime-progress-update-to-a-slow-page-in-asp-net/5871947#評論-6770037 – 2011-05-09 15:28:45