大家一起來探討下在web中顯示上傳進度的問題

首先我想說下,如果有人說我抽,也沒辦法。我只想探討原理,不要組件。

確定問題:上傳文件時顯示進度信息。

背景分析:還是那句老話,網上有很多進度顯示的方案,看了都不是我想要的。不過有很多思路還是挺好的,我想要的是:把比較大的文件分塊讀取,每讀取一塊文件向客戶端發送一個信號。

有人說用XMLHttpRequest,確實可行,但是隻有5個狀態,其中一個狀態是處理過程,這個關鍵的狀態還是不透明。如果文件很大,這個過程還是要耗比較長的時間的。這樣進度的作用未得到完全體現。

個人認爲的難點:服務器端讀取一塊數據,發送一個信號;而不是讀完再發送信號。但是程序中的事務機制,事件是不可分割的,要麼做完,要麼不做。

那麼我想突破點在於:重寫保存文件的事件。

還有一個想法,就是在客戶端將數據分塊到緩存,一塊一塊的上傳。不知道具體實現。

第三個想法,根據測試網速的原理,先測試出速度,那麼一切就好辦了。可是在上傳過程中不能保證網絡的穩定性。

本人不知道桌面程序是怎麼獲得進度的,知道的提供個思路唄。所謂分塊讀取發送信號真的可行嗎?WCF,Ajax,iframe,XMLHttpRequest,SwfUPload等關鍵點在什麼地方?……

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章