`

dwr的远程批量调用

    博客分类:
  • DWR
阅读更多
    有时我们为了减少向服务器提交的次数,我们可以向服务器批量提交所要执行的方法。但这样又会给我们带来一些额外的负担,下面将给出解决方法和我们在开发中应该注意的地方。 

可以用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”。
走笔至此!
2
0
分享到:
评论

相关推荐

    远程调用Dwr

    它支持多种类型的调用,包括方法调用、回调函数、批量调用和异步调用。 **DWR的主要组件** 1. **Reverse Ajax Engine**:这是DWR的核心,它在服务器端运行,监听HTTP请求,并处理JavaScript到Java的调用。 2. **...

    dwr 各种调用方法

    除了上述的基本调用方式,DWR还支持异步调用、批量调用、传递数组和集合、异常处理等多种功能。异步调用允许在不阻塞用户界面的情况下调用服务器方法,批量调用则可以同时调用多个方法。DWR也提供了丰富的错误处理...

    DWR是作为远程调用的ajax框架[参照].pdf

    3. **性能优化**:合理利用DWR的批量调用和缓存机制,减少不必要的网络通信。 总之,DWR是一个强大的Ajax框架,它简化了前后端交互,提升了Web应用的动态性和用户体验。通过理解和熟练运用DWR,开发者可以更高效地...

    DWR中文文档

    6. **批量调用与回调**:DWR支持批量调用多个服务器方法,并且可以在一个回调函数中处理所有结果。这对于处理大量数据或执行多个操作的场景非常有用。 7. **DWR的事件机制**:DWR提供了一套事件监听系统,允许你在...

    DWR与界面开发 资料大全

    3. **批量调用**:DWR支持批量调用多个方法,减少网络传输。 五、DWR的安全性 1. **白名单配置**:通过dwr.xml配置文件设置允许调用的类和方法,防止XSS攻击。 2. **签名与认证**:DWR可以通过签名来验证请求的来源...

    Ajax之远程dwr开发指南

    2. **性能优化**:DWR支持批量调用,减少网络请求次数,提高性能。 3. **安全性**:DWR提供了内置的安全机制,如CSRF保护、白名单等,确保远程调用的安全性。 4. **调试友好**:DWR提供了详细的日志输出和错误处理...

    DWR例子(完整调试版)

    - **Batching**:DWR允许批量调用多个远程方法,减少网络开销。 - **Caching**:DWR提供缓存机制,可以缓存服务器响应,提高性能。 **DWR的应用场景:** 1. **实时数据更新**:如股票报价、天气预报等需要实时更新...

    dwr操作,直接调用后端,动态局部刷新,回调处理

    例如,可以使用`DWREngine.beginBatch()`开始一次批量调用,然后调用多个远程方法,最后使用`DWREngine.endBatch()`结束并执行所有调用。 4. **动态局部刷新**: DWR的一大优势是支持动态局部刷新,这意味着只有...

    dwr 压缩文件 帮助文档

    7. **批量调用和缓存**:DWR支持批量调用多个远程方法,减少网络请求次数,提高性能。它还提供了一种缓存机制,对于不常变化的数据,可以在客户端缓存结果,减少不必要的服务器通信。 8. **调试工具**:DWR提供了...

    ssh+dwr 整合案例

    2. **批量调用与异步更新**:DWR支持批量调用多个服务器方法,以及异步处理,提高了用户体验。 3. **缓存与重用**:DWR对JavaScript对象进行缓存,避免重复加载,提升性能。 4. **安全控制**:DWR有严格的访问控制...

    dwr ajax完整示例,内有dwr配置说明文档,eclicps工程

    6. **批量调用**:如果需要一次性调用多个服务器方法,DWR提供批量调用的功能。 学习这个示例,你将能掌握DWR的基本用法,并能将其应用到实际项目中,提升Web应用的用户体验。Eclipse工程可以帮助你在开发环境中...

    dwr中文文档pdf格式

    - **远程方法调用(Remote Method Invocation, RMI)**:JavaScript可以像调用本地函数一样调用服务器端的方法,实现实时更新。 - **自动序列化和反序列化**:DWR自动处理Java对象到JSON或XML的转换,简化数据交换。...

    dwr的中文简明教程下载

    6. **批量调用与事件处理**:DWR支持批量调用多个远程方法,这可以优化网络传输效率。此外,教程还会讲解如何处理调用的生命周期事件,如开始、结束、错误等。 7. **缓存机制**:DWR提供了缓存功能,可以缓存服务器...

    dwr dwr dwr

    6. **批量调用**:DWR支持批量调用多个远程方法,减少了网络往返次数,提升了应用性能。 7. **异步和同步调用**:开发者可以选择异步或同步方式调用服务器端的方法,根据需求选择合适的调用模式。 8. **跨域支持**...

    dwr框架简介PDF

    6. **批量调用和异步处理**:DWR支持批量调用多个远程方法,并且可以异步执行这些调用,优化了服务器资源的利用。 7. **调试工具**:DWR提供了内置的调试工具,帮助开发者查看和调试AJAX请求。 在DWR中文文档v0.9...

    dwr的几个小例子,dwr的几个小例子

    DWR支持批量调用多个远程方法,这可以减少网络请求的次数,优化性能。 9. **JSON支持**: DWR默认使用JSON作为数据交换格式,因为JSON在大小和解析速度上优于XML,更适合于AJAX通信。 10. **版本控制**: DWR...

    DWR+dwr入门手册

    5. **DWR的Batching机制**:DWR允许批量执行多个远程调用,这样可以减少网络往返次数,提高性能。 6. **DWR的安全性**:DWR提供了安全特性,如JavaScript反向工程防护、CSRF(跨站请求伪造)防护等,以防止恶意攻击...

    springMVC集成dwr

    1. **性能优化**: 在大规模应用中,应考虑 DWR 的性能影响,可能需要对调用频率、批量处理等进行优化。 2. **版本兼容性**: 确保 SpringMVC、DWR 和 Hibernate 的版本相互兼容,避免因版本不匹配导致的问题。 3. **...

    dwr所需要的jar包

    - **远程调用**:通过DWR,JavaScript代码可以在客户端直接调用服务器端的Java方法,就像它们是本地函数一样。 - **自动JSON序列化与反序列化**:DWR自动处理数据在Java对象和JavaScript对象之间的转换,支持JSON...

Global site tag (gtag.js) - Google Analytics