DWR/Ajax超時設置及其問題

DWR可以指定超時設置:
1、設置局部超時:

RemoteBean.remoteMethod(param1, param2, ...,
{
callback: callbackfun, //回調函數
timeout: Tms, //超時,單位是毫秒,默認爲20分鐘,設置爲0代表關閉超時
errorHandler:function(message) { alert(message); } //超時後調用的處理函數
});

2、設置全局超時:
       DWREngine.setTimeout(Tms);

3、存在的問題:
       在某些情況下,Ajax/DWR超時造成回調無法調用(及時關閉超時設置也不行),我的一個比較笨的解決辦法就是前臺同時啓動兩個DWR遠程調用,一個線程啓動後臺的耗時操作,這個操作結束後會向一個能夠快速返回的地方,比如文件,數據庫寫入標識位(例如耗時操作的結果成功,失敗等),而另一個線程獲取後臺文件或者數據庫中的標識位(這個操作返回比較快),前臺的第一個DWR調用不需要回調,只有第二個回調根據讀取的標識位更新前臺頁面。以上問題在DWR環境和原始的Ajax調用中都存在。

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