Dwr与Jquery冲突解决办法以及DWR调用问题

一:JQUEYRDWR冲突问题:

$()函数(它是合法的JS名字),很多JS框架都会用“$”命名方法来获取页面元素。

都是从Prototype学来的主意。

大略的讲$=document.getElementById. 因为在JS中需要大量这样的语句,换用$会比较简洁。

Dwrutil.js中是这样定义的:

var $;
if (!$) {
  $ = dwr.util.byId;
}

jQuery$()函数是查找某一类型的元素,jQuery根据ID取对象的方法是$("#id");

jQuery的选择器更灵活多样。

如果同时引入两个JS就会出现方法冲突。

解决办法有很多种。

1. 放弃dwrutil.js 。用jQuery的方法来操作页面元素。

2. 如果想同时使用。

(1) jquery官网给出了解决办法:

var j = jQuery.noConflict();    

j(document).ready(function(){    

//代码,如j("#name")   

jQuery.noConflict()

运行这个函数将变量$的控制权让渡给第一个实现它的那个库。

这有助于确保jQuery不会与其他库的$对象发生冲突。

在运行这个函数后,就只能使用jQuery变量访问jQuery对象。例如,在要用到$("div p")的地方,就必须换成jQuery("div p")

注意:这个函数必须在你导入jQuery文件之后,并且在导入另一个导致冲突的库之前使用。当然也应当在其他冲突的库被使用之前,除非jQuery是最后一个导入的。

(2)改掉DWR的方法名:

可以把dwr取值的方法换成另一个。

var _d;

if (!_d) {

  _ d= dwr.util.byId;

}

OK,这样你就能用”_d”来替换DWR中的$符号了。

如:DWREngine.setPostHook(function() { _d('disabledZone').style.visibility = 'hidden'; });

3. 或者干脆都用jQuery.

二:DWR调用问题:

1、在jsp中调用dwr进行后台业务验证时,如果需要执行数据库操作,则需要调用程序的service层代码,而非调用dao代码,如果调用dao层代码执行数据库操作,则需要手动提交事务处理。

DWR中调用dao层需要手动处理事物。事物不会自动提交。

所以要调用service层的方法,让service来处理事物。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值