我現在做了一個郵件群發系統,在群發時,由于用戶過多,發送時間比較久,頁面感覺是停止響應了一樣,我想做一個這樣東西:就像安裝軟件一樣,發送一個郵件,就在在頁面輸出類似:郵件成功發送至:[email protected]郵件成功發送至:[email protected]........................可以采用AJAX的方式來做么?如果可以,應該怎么做?或者聽說過一個叫做異步的東東,但是沒做過。懇請園友指點一二,謝謝了。
2 回答

拉風的咖菲貓
TA貢獻1995條經驗 獲得超2個贊
可以的,基本原理是這樣:
首先你的發送會占用網頁所在的線程,從而只有等到全部發送完畢后才會返回響應,所以第一點就是要另開辟一個線程異步執行發送操作。
在異步發送過程中,向數據庫或其他位置寫入進度消息。
寫一個WebService用于返回消息。
在客戶端中使用定時器定期訪問該WebService獲取最新的消息,呈現給用戶。
整個實現過程還是比較麻煩的,涉及知識點較多。
如果將WebService&客戶端Ajax部分換作Asp.Net提供的UpdatePanel+Timer方案,難度會被簡化很多。
如果不采用Ajax,也有個權宜之:
第一步還是啟用獨立線程異步發送郵件
也還是要在發送時將消息寫入數據庫或其他位置
然后立即將客戶端頁面轉向到消息頁
消息頁讀取消息并顯示,并且該頁面設置定時刷新,這樣也能解決問題,就是用戶體驗不是很好。
- 2 回答
- 0 關注
- 518 瀏覽
添加回答
舉報
0/150
提交
取消