`
hbhgjiangkun
  • 浏览: 95954 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

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官网给出了解决办法:

varj=jQuery.noConflict();

j(document).ready(function(){

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

}

jQuery.noConflict()

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

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

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

注意:这个函数必须在你导入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来处理事物。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics