`
- 浏览:
67874 次
- 性别:
- 来自:
北京
-
DWR同一个页面中多次引用engine.js出现:Incomplete reply from server
之前写过两篇DWR原理的文章,对DWR的使用原理基本了解了。由于最近在做portlet的开发,遇上了这样一个问题。在同一个界面中可能会加入多个portlet,而其中每个portlet中都会用到DWR,所以当多个portlet同时加载在一个页面是,就会出现:Incomplete reply from server的错误。找了一些资料,发现如下资料:
http://directwebremoting.org/jira/browse/DWR-481?page=com.atlassian.jira.plugin.system.issuetabpanels%3Achangehistory-tabpanel
之前一直没有注意过DWR的版本问题,看到上面这篇文章,开回头看了一下自己用的DWR。果然是DWR3.0.这是差不多三年前,DWR发布的一个bug,既然3.0没有解决,那就得自己想些比的解决方案。
又经过一番的查询,找到了如下一种解决方案,按照做了:
http://www.liferay.com/zh/community/forums/-/message_boards/message/25813719
要点如下:
1、首先,需要一个require.js文件,
下载地址如下:http://requirejs.org
2、在所有使用DWR的.jsp页面中添加如下脚本:
<script data-main="/NameOf-portlet/js/main.js" src="/path/to/js/require.js"></script>
3、编写main.js脚本
//判断是否加载dwr
if (typeof dwr == 'undefined') {
require(["/NameOf-portlet/dwr/engine.js"], function() {
require(["/NameOf-portlet/dwr/util.js"], function() {
require(["/NameOf-portlet/dwr/interface/BrowseDWRGate.js"], function() {
//alert("Engine js incldued");
});
});
});
}else {
require(["/NameOf-portlet/dwr/interface/DWRGate.js"], function() {
//alert("Just gate incldued");
});
}
}
我按照以上的步骤执行了,对于单个页面加载单个portlet这种方式是可以的。但是,当同一页面加载多个使用DWR的portlet时,虽然不报错了,但是DWR功能却不能执行了。原因还不知道为什么,我也在进一步测试,希望有做这方面的一起讨论。
附上jquery-require-sample的是例子.
require.js的用法:
http://www.ruanyifeng.com/blog/2012/11/require_js.html
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
这个压缩包包含了DWR的核心组件`engine.js`和辅助库`util.js`,它们是实现DWR功能的关键。 `engine.js`是DWR的核心脚本,它实现了JavaScript和Java之间的远程调用(Remote Procedure Calls, RPC)。这个文件处理了...
总结来说,DWR提供了一个强大的工具,使得Web开发者可以通过JavaScript轻松地调用服务器端的Java方法,而`util.js` 和 `engine.js` 分别作为工具库和核心引擎,是实现这一功能的关键组件。在实际开发中,理解和掌握...
"engine.js"是DWR的客户端引擎文件,它包含了一组JavaScript库,使得在浏览器中可以轻松地调用服务器端的Java方法。这个文件应该被包含在Web页面中,以便Web应用能够利用DWR的功能。`engine.js`提供了诸如对象转换、...
Direct Web Remoting (DWR) 是一个开源Java库,它允许Web应用程序在客户端JavaScript和服务器端Java之间进行安全、简单的异步通信。这个教程包含了DWR的核心组件和使用示例,帮助开发者理解并掌握DWR的技术特点和...
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的实例、相关的jar包以及两个重要的JavaScript文件——`engine.js`和`util.js`,这些都是学习DWR的关键组件。 1. **DWR基础概念**: DWR的核心功能是提供一种方式,使得客户端JavaScript可以...
dwr框架中提供的engine.js的源码。
Direct Web Remoting (DWR) 是一个开源的Java库,它允许JavaScript在浏览器端与服务器端的Java代码进行交互,从而实现动态Web应用程序。DWR的主要目标是简化AJAX(Asynchronous JavaScript and XML)开发,使得前端...
标题 "dwr需要的js(searchaAuthor+engine.js+util.js).rar" 提供的信息表明,这个压缩包包含了DWR(Direct Web Remoting)框架所必需的JavaScript文件。DWR是一种允许Web应用程序在客户端与服务器端进行实时通信的...
NULL 博文链接:https://ruyuntao.iteye.com/blog/267105
这是dwr需要的engine.js和util.js,Engine.js与util.js不同之处在于,util.js是静态js文件,可以直接从jar文件中拿出来,页面可以直接引用;而engine.js则有部分动态内容,这决定了它必须经过servelt资源请求,在...
DWR util.js 是一个JavaScript工具库,提供了一些有用的函数,用于在客户端页面调用。下面是DWR util.js中的主要功能: 1. $()函数:获取页面参数值 该函数用于获取页面参数值,例如:var name = $("name");获取名...
将DWR的Servlet添加到web.xml,部署应用,然后在浏览器中打开一个包含`dwrtest.js`的页面。当页面加载时,DWR会自动与服务器建立连接,并调用`getHello()`方法。服务器返回的"你好,DWR!"将在一个弹出框中显示。 5...
在这个场景中,提到的"2个js文件"是DWR框架的核心组件,用于实现AJAX功能。下面将详细解释这两个文件的作用以及它们在DWR中的角色。 1. **engine.js**: 这是DWR的核心引擎文件,它提供了与服务器进行通信的主要...
DWR(Direct Web Remoting)是一种Java库,用于在Web应用程序中实现实时的客户端-服务器通信。这个技术使得开发者可以像操作本地对象一样在浏览器中调用服务器端的Java方法,大大简化了Ajax应用的开发。下面我们将...
在 DWR 中,util.js 是一个核心文件,包含了一些有用的函数,用于在客户端页面调用。这些函数可以帮助开发者快速地处理各种 form 表单 Select/option 和 table。 下面是 util.js 中的一些重要函数: 1. $() 函数:...
二、使用JavaScript将一个页面的一个参数传递到另外一个页面 1. 通过URL参数传递:可以将JavaScript的数据以xxx.jsp?var1=aaa&var2=bbb的形式作为URL参数传给JSP程序。 2. 使用表单隐藏域传递数据:可以在表单里...
Direct Web Remoting (DWR) 是一个开源Java库,它允许JavaScript在Web浏览器中与Java服务器进行通信,实现Ajax功能。DWR简化了在客户端和服务器之间传递数据和调用方法的过程,使得开发者无需手动处理复杂的JSON或...