有时我们为了减少向服务器提交的次数,我们可以向服务器批量提交所要执行的方法。但这样又会给我们带来一些额外的负担,下面将给出解决方法和我们在开发中应该注意的地方。
可以用DWREngine.setX()来设置全局的或者一个调用(使用比如{ timeout:500, callback:myFunc })或者一次批处理. 一次批处理是几个调用一起被执行.
1.远程批量调用
你可以把几个远程调用用一个batch组织在一起。这样在一个回合里就保存到服务器上,可以减少很多响应时间(latency involved)。
一个batch使用DWREngine.beginBatch()开始,使用DWREngine.endBatch()结束。当endBatch()被调用的时候,我们已经完成了一组集合在一起的远程调用,因此DWR在一个回合里面把他们提交到服务器上执行。
DWR会确保所有的回调函数被调用,因此你可以显式的打开和关闭batch.重要的是不要忘记调用endBatch(),否则你的远程调用会永远在队列中而不被执行。
警告 :
很显然的,批处理很多调用的时候会有一些副作用。如果一个单个的batch中有两个具有不同超时时间(timeout)的调用(call),那么基本上可以说,前面的那个会被忽略,dwr只保留最后那个.
程调用可以批量执行来减少反应时间。endBatch 函数中可以设置选项。
dwr.engine.setTimeout(1000);//全局设置超时
DWREngine.beginBatch();
Remote.method1(params, callback1);
Remote.method2(params, callback2);
DWREngine.endBatch({
timeout:3000 //局部设置超时,优先级高,将覆盖全局设置的超时
});
2.调用排序
因为AJAX通常是一种异步模型远程调用,很有可能返回结果的顺序跟发送请求的顺序是不同的。
DWREngine.setOrdered(boolean)这个方法允许你要求所有的回应都严格跟他们发出请求的顺序保持一致。DWR实现这个的原理是,只有当先发出的请求已经完成的时候才发送一个新的请求。
我们是否希望要确保远程调用执行的顺序跟他们被发出的顺序一致?(这个选项默认是false)
警告: 设置这个选项为true将会使你的应用变慢,并且可能会因为一个消息丢失,浏览器失去响应而使用户离开。
有时候你可能有更好的解决方案来使你的应用正确的使用异步模型。在使用这个方法之前请一定要慎重考虑。
3.设置超时
DWREngine.setTimeout()允许你在call和batch级别调用元数据选项设置超时时间。全局的DWREngine.setTimeout() 函数应用于所有的DWR调用。设置这个值为0可以关闭调用的超时设置(默认就是0)。
setTimeout()的单位是毫秒,如果一个调用超时,那么相应的错误处理器将被调用。比如下面是一个调用级别设置超时的例子:
代码
Remote.method(params, {
callback:function(data) { alert("it worked"); },
errorHandler:function(message) { alert("it false"); },//超时的错误处理函数
timeout:4000
});
如果Remote.method()执行时间超过了4秒,那么,将会显示“it false”。
走笔至此!
分享到:
相关推荐
springboot整合dwr实现js调用java方法,页面支持freemarker和jsp
dwr dwr项目 js 调用 java 后台 方法 js调用java后台方法 后台方法 异步
dwr 各种调用方法 不同类型
dwr实例
dwr 的简单应用,包括前台调用后台,后台调用js
dwr调用带集合返回值的方法,dwr调用带集合返回值的方法
DWR是作为远程调用的ajax框架[参照].pdf
DWR中各种java方法的调用,DWR应用
希望这个文件可以帮到很多人,有好资源就要无私地奉献!
DWR实现java类转换成JavaScript类的小例子。
dwr方法调用祝你网络编程天天顺手。。。。。。。。。。。。。。。。。。
NULL 博文链接:https://rabby.iteye.com/blog/775493
DWR与JSP DWR调用内置对象 内置对象 DWR与JSP DWR调用内置对象 内置对象 DWR与JSP DWR调用内置对象 内置对象
DWR通过JavaScript直接调用远程组件可以减少Web开发的时间,特别对于那些具有和用户频繁交互的Web应用程序。DWR使得浏览器不用刷新页面就可以从远程Web服务器取得用户需的数据,这种无刷新页面的交互方式大大提高Web...
DWR经典示例,DWR异步调用,国家与地区连动
以上本人学习DWR后总结的一个简单的文档,主要总结了调用方法,以及不同参数形态的传递方法,例如,多参数传递、Map参数传递、List参传递数,对象参数传递有参数互传等。
DWR通过JavaScript直接调用远程组件可以减少Web开发的时间,特别对于那些具有和用户频繁交互的Web应用程序。DWR使得浏览器不用刷新页面就可以从远程Web服务器取得用户需的数据,这种无刷新页面的交互方式大大提高Web...
DWR(Direct Web Remoting)是一个WEB远程调用框架.利用这个框架可以让AJAX开发变得很简单.利用DWR可以在客户端利用JavaScript直接调用服务端的Java方法并返回值给JavaScript就好像直接本地客户端调用一样(DWR根据Java...
通过dwr实现js调用java,以及java调用js,内涵可用的dwr.jar