engine.js对于DWR非常重要,engine.js和util.js相当于DWR的两个静态函数库,使用DWR时engine.js必须导入,util.js可以简化DOM操作选择导入,Ajax通常是异步调用,因此发送请求的顺序与返回的顺序并不一定一致,要想使其一致可以:
dwr.engine.setOrdered(true);
这样的话,在旧的请求返回之前,DWR不会发送新的请求,所以会导致性能降低
使用JSON回调时每次都要指定超时时长,会很繁琐,为了避免重复指定可以通过指定全局超时时长:
dwr.engine.setTimeout(5000);
也可以指定全局的Hook函数:
//设置全局的调用前Hook函数 dwr.engine.setPreHook(preFunction); //设置全局的调用后Hook函数 dwr.engine.setPostHook(postFunction);
也可设置全局处理函数:
//设置全局的错误处理函数 dwr.engine.setErrorHandler(errorFunction()); //设置全局的警告处理函数 dwr.engine.setWarningHandler(warnFunction()); //设置全局的异常处理函数 dwr.engine.setExceptionHandler(exceptFunction()); //设置全局的内容异常处理函数 dwr.engine.setTextHtmlHandler(textHtFunction());
也可以指定全局的是否采用异步方式:默认是true:
dwr.engine.setAsync(true|false);
指定全局的请求方法:
dwr.engine.setHttpMethod(POST|GET);
指定全局的远程调用的方式:
dwr.engine.setRpcType(XMLHttpRequest|Iframe|ScriptTag);
如果浏览器禁用ActiveX则不可用XMLHttpRequest,不过通常DWR会智能选择
如果既指定了全局又在单次调用指定了则全局会被覆盖
为了避免频繁多次调用服务器方法,DWR提供了批处理功能,当开启批处理功能时发送的请求不会立即发送到服务器,都会在等待队列中直到调用dwr.engine.endBatch()方法之后,DWR会通过一次交互来完成全部调用,不可在批处理时指定同步调用,也不能单独设置hook、timeouts等选项:
dwr.engine.beginBatch(); hello.sendMessage("wang",callb1); hello.hello("li",call2); dwr.engine.endBatch({ timeout:3000, errorHandler:function(msg){alert(msg);} });
相关推荐
`engine.js`是DWR的核心脚本,它实现了JavaScript和Java之间的远程调用(Remote Procedure Calls, RPC)。这个文件处理了请求的发送、响应的接收以及结果的处理。通过`engine.js`,前端开发者可以轻松地创建Java对象...
dwr包.rar dwr.jar engine.js util.js dwr-noncla.jar readme.txt JAR File: dwr.jar (1.08Mb) To DWR enable your web-app WAR File: dwr.war (4.62Mb) Demos/Examples of what DWR can do Sources: dwr-...
总结来说,DWR提供了一个强大的工具,使得Web开发者可以通过JavaScript轻松地调用服务器端的Java方法,而`util.js` 和 `engine.js` 分别作为工具库和核心引擎,是实现这一功能的关键组件。在实际开发中,理解和掌握...
dwr框架中提供的engine.js的源码。
`util.js` 和 `engine.js` 是DWR的核心JavaScript库。`util.js` 提供了一系列实用工具函数,用于辅助JavaScript编程,例如类型检查、对象遍历等。`engine.js` 是DWR引擎的核心,负责处理与服务器的通信,包括请求的...
"engine.js"是DWR的客户端引擎文件,它包含了一组JavaScript库,使得在浏览器中可以轻松地调用服务器端的Java方法。这个文件应该被包含在Web页面中,以便Web应用能够利用DWR的功能。`engine.js`提供了诸如对象转换、...
这个压缩包包含的是DWR的实例、相关的jar包以及两个重要的JavaScript文件——`engine.js`和`util.js`,这些都是学习DWR的关键组件。 1. **DWR基础概念**: DWR的核心功能是提供一种方式,使得客户端JavaScript可以...
标题中的"DwrEngine.js"和"DwrUtil.js"是DWR的核心JavaScript库文件。`DwrEngine.js`提供了与服务器通信的主要接口,实现了AJAX调用的底层逻辑,包括异步请求的发送、响应的处理以及错误管理等。`DwrUtil.js`则是...
标题 "dwr需要的js(searchaAuthor+engine.js+util.js).rar" 暗示了这个压缩包包含的是一组JavaScript文件,用于DWR(Direct Web Remoting)框架的功能扩展。DWR是一种开源Java库,允许Web应用程序在客户端和服务器...
总之,解决"DWR同一个页面中多次引用engine.js出现:Incomplete reply from server"的问题,需要对DWR框架、JavaScript的加载机制以及可能涉及的其他库有深入的理解。通过优化加载策略、调整配置、使用开发工具和...
这是dwr需要的engine.js和util.js,Engine.js与util.js不同之处在于,util.js是静态js文件,可以直接从jar文件中拿出来,页面可以直接引用;而engine.js则有部分动态内容,这决定了它必须经过servelt资源请求,在...
Direct Web Remoting (DWR) 是一个开源Java库,它允许在Web应用程序中实现JavaScript与服务器端Java对象之间的双向通信。这个"**dwr.rar**"压缩包包含了DWR的核心组件,即**dwr.jar**文件,它是DWR运行所必需的。DWR...
第6章.engine.js的功能,含3小节;第7章.util.js的功能,含13小节;第8章.DWR进阶,含5小节;第9章.范例精讲——购物车,含8小节;第10章.附录,含常见问题(4节)和JavaScript高级应用(5节)。希望对于像我一样的初学者...
- `src="/path/to/dwr/engine.js"`应该指向DWR提供的JavaScript库文件的位置。 - 使用`new Demo()`创建Java对象的实例,并调用其`hello()`方法,回调函数处理Java方法的响应结果。 #### 五、测试与调试 1. **部署...
默认的时候DWR将java void值转换成javascript的null值就是这样设置<convert converter="null" match="void"/>. 有时java.lang.Void也需要进行这样的转换,所以设置也是相似的<convert converter="null" match="java....
在DWR中,util.js是一个重要的辅助库,提供了多种方便的JavaScript函数,简化了DOM操作和数据处理。以下是对DWR util.js中一些关键功能的详细说明: 1. **`$("id")`**:这个函数类似于JavaScript的`document....
DWR的核心在于XML配置文件,即`dwr.xml`,它是DWR与应用服务器交互的桥梁,定义了哪些Java对象可以被JavaScript访问,以及如何处理这些调用。对于学习Ajax的用户来说,理解并掌握`dwr.xml`的配置至关重要,因为它...
- **DWR Engine**:负责处理与服务器的通信,管理JavaScript与Java之间的映射。 - **DWR Servlet**:部署在服务器上,接收来自JavaScript的请求并转发给相应的Java方法。 - **Client-side API**:一组JavaScript...