`
wjboy49
  • 浏览: 274957 次
  • 性别: Icon_minigender_1
  • 来自: 湖南岳阳
社区版块
存档分类
最新评论

DWR/Ajax超时设置及其问题

    博客分类:
  • java
阅读更多

DWR 可以指定超时设置:

1、设置局部超时:

RemoteBean.remoteMethod(param1, param2, ...,

{

callback: callbackfun, //回调函数

timeout: Tms, //超时,单位是毫秒,默认为20分钟,设置为0代表关闭超时

errorHandler:function(message) { alert(message); } //超时后调用的处理函数

});
 
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调用中都存在。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics