?dwr 与js的一个奇怪问题请教

qiaogn 2013-10-30 03:00:12
具体情况如下;
简单的dwr框架搭建。demo 对应自定义后台java类,sayHello是其中一个方法,返回一个字符串
当函数初始化结束运行即 window.onload=function(){
alert("hi");
Demo.getHello("hi",dwrHandler);
}//这是dwr的一个回调函数,data参数即java方法getHello(String name)的返回值
function dwrHandler(data){
alert("sss");
alert(data);
}
程序运行正常。三个弹窗都有数据。但是改为button触发事件如下
function dwr(){
alert("hi"); Demo.getHello("hi",dwrHandler);
}
function dwrHandler(data){
alert("sss");
alert(data);
}
按钮<input typt="button" onclick="dwr()"/>
程序只弹出第一项,即hi 请教诸位大侠,哪的问题呢!!
...全文
202 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
eddie 2014-02-11
  • 打赏
  • 举报
回复
引用 3 楼 wzs_xyz 的回复:
[quote=引用 2 楼 qiaogn 的回复:] [quote=引用 1 楼 showbo 的回复:] 是不是dwr框架需要加载的js没有加载完毕就点了按钮导致还没有生成Demo的客户端类库,用firefox或者chrome开发工具看下发出了ajax请求没 function dwr() { alert("hi"); alert(typeof Demo) Demo.getHello("hi", dwrHandler); }
在button事件中firefox 显示没有触发ajax请求。 typeof(demo) 为object。typeof(demo.sayhello为function 控制台显示 错误 typeerror dwr.engine is undefined; 初始化之后则正常调用ajax事件。 但是button事件不可能正在初始化完成之前吧???[/quote] 点击是可以在页面加载完前触发的,一个a标签只要一显示出来就可以点了,不用等页面加载完,这个上过网的都该知道,按钮也是一样 至于绑定的事件究竟后不会在其他资源加载完前执行,要看资源的加载顺序,先绑定事件,再加载框架,自然可能出现执行时间函数时框架未加载,反之则不会;若你无法控制,可在事件函数中判断一下框架是否加载,也可以看看框架的API函数,有没有提供加载完成时的回调函数[/quote]学到了!
qiaogn 2013-11-03
  • 打赏
  • 举报
回复
引用 4 楼 KK3K2005 的回复:
window.onload=function(){ //你在这里绑定 input的 onclick事件 //来确定问题 }
两种方式而已,初始化后ajax执行成功。设置为button事件就出问题,dwr引擎没有调用
qiaogn 2013-11-03
  • 打赏
  • 举报
回复
我去,编程无奇不有啊
二级代号 2013-11-03
  • 打赏
  • 举报
回复
function dwr() 函数名称:dwr? 冲突了
未知数 2013-11-01
  • 打赏
  • 举报
回复
引用 2 楼 qiaogn 的回复:
[quote=引用 1 楼 showbo 的回复:] 是不是dwr框架需要加载的js没有加载完毕就点了按钮导致还没有生成Demo的客户端类库,用firefox或者chrome开发工具看下发出了ajax请求没 function dwr() { alert("hi"); alert(typeof Demo) Demo.getHello("hi", dwrHandler); }
在button事件中firefox 显示没有触发ajax请求。 typeof(demo) 为object。typeof(demo.sayhello为function 控制台显示 错误 typeerror dwr.engine is undefined; 初始化之后则正常调用ajax事件。 但是button事件不可能正在初始化完成之前吧???[/quote] 点击是可以在页面加载完前触发的,一个a标签只要一显示出来就可以点了,不用等页面加载完,这个上过网的都该知道,按钮也是一样 至于绑定的事件究竟后不会在其他资源加载完前执行,要看资源的加载顺序,先绑定事件,再加载框架,自然可能出现执行时间函数时框架未加载,反之则不会;若你无法控制,可在事件函数中判断一下框架是否加载,也可以看看框架的API函数,有没有提供加载完成时的回调函数
qiaogn 2013-11-01
  • 打赏
  • 举报
回复
引用 1 楼 showbo 的回复:
是不是dwr框架需要加载的js没有加载完毕就点了按钮导致还没有生成Demo的客户端类库,用firefox或者chrome开发工具看下发出了ajax请求没 function dwr() { alert("hi"); alert(typeof Demo) Demo.getHello("hi", dwrHandler); }
在button事件中firefox 显示没有触发ajax请求。 typeof(demo) 为object。typeof(demo.sayhello为function 控制台显示 错误 typeerror dwr.engine is undefined; 初始化之后则正常调用ajax事件。 但是button事件不可能正在初始化完成之前吧???
KK3K2005 2013-11-01
  • 打赏
  • 举报
回复
window.onload=function(){ //你在这里绑定 input的 onclick事件 //来确定问题 }
Go 旅城通票 2013-10-30
  • 打赏
  • 举报
回复
是不是dwr框架需要加载的js没有加载完毕就点了按钮导致还没有生成Demo的客户端类库,用firefox或者chrome开发工具看下发出了ajax请求没 function dwr() { alert("hi"); alert(typeof Demo) Demo.getHello("hi", dwrHandler); }

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧