dwr回调函数不执行,有可能是什么原因?
admin 发表于 2010-08-28 | 来源:互联网 | 阅读:

项目中原有一些页面,需要大量读取数据,其中部分数据读取时间过长,导致整个页面载入缓慢,客户体验很不好。
后使用dwr 2.0,将读取时间长的那部分数据,延迟到页面加载之后,由onload触发,dwr调用后台读取类(只有1个,且未进行多线程控制),再次进行加载。
以此法修改几个页面,均运行正常。
但又修改了几个页面后,偶尔会出现dwr回调函数不执行的情况,查看日志后发现,后台读取类内容已读取完毕,只是回调函数未执行。且一旦出现此情况,只有重启服务,否则以此法延迟加载的数据均无法读出。但出现该情况时,其他功能均运行正常,调用其他dwr后台类的方法也能正常运行。
请问有可能是什么原因?

已经有14 个评论
  1. water20042 说:

    CSS code
    1、页面的engin.js和后台java函数的js又没有导入、顺序对不对、后台函数的js文件名和方法名称及dwr.xml配置中
    的又没有对应。
    2、后台的方法又没有配置dwr.xml中,配置对不对。
    3、是否是异步交互而采用了同步读取数据方式,改成同步的看看
    4、后台java方法又没有执行,又没有正确的返回值
    1、2可以省略不看

  2. liangjiaqi 说:

    恩,具体说下我采用的方式吧,方便分析~配置文件片段 <create creator="new" javascript="MyDwrJsMethod"> <param name="class" value=http://topic.csdn.net/u/20100806/15/"test.MyDwrClass"/> <include method="gateMethod"/> </create>1.前台调用MyDwrJsMethod时,传入组装好的json形式的参数,其中包括本次的读取数据类型(比如:类型1,类型2),以及本次读取需要的各种参数。2.后台类MyDwrClass有public入口方法gateMethod,以Map<String,String>形式获得前台传入的参数。根据从Map中获得的读取数据类型(比如:类型1),相应调用MyDwrClass中private形式的方法(比如:方法1),这些方法查询数据库后,组装Map<String,String>形式的数据,再由gateMethod返回这些数据。3.前台执行回调函数,获取json形式的后台返回data。再逐个将数据以dhtml的方式写回页面中。在出问题的情况下,1,2步均执行正常,其中第2步通过日志,可以看到要返回的Map<String,String>形式数据已组装完毕,只是没有执行第3步。

  3. wuwei04 说:

    因为是在回调函数中将获得的数据写回页面,所以应该也不涉及dwr的异步,同步问题

  4. my159 说:

    CSS code
    那就和你传递参数有关了,Map<String,String>
    相当于array中放object
    [{key: value},{key2, "value"}]

  5. sbamd 说:

    同样的Map<String,String>形式返回数据,数据内容也相同,是可以传递回前台,并由回调函数读取并写回页面的,说明数据传递本身是正确的。但是偶尔(比如:10次里有1次)会出现回调函数不调用的情况,然后此类ajax用法就都不能正常工作了。我在调用MyDwrJsMethod之前,和回调函数开始都打了alert。回调函数执行的情况下,俩个alert都可以打出。回调函数不执行的情况下,前一个alert可以打出,后一个就不打了。

  6. kook 说:

    那就监控下不执行情况下的参数,方法的信息,用调试工具调试下

  7. 546914408 说:

    不执行的情况,和执行的情况,调用的方法和传入的参数是一样的。简单来说,就是同样的页面,F5几次,然后就可能不能正常工作了…数据库连接开闭方面没有问题,数据库查询也执行过了,就是到dwr调用回调函数时候失灵了…

  8. water20042 说:

    感觉是dwr没处理好ajax并发请求时执行回调函数的问题。在IE使用同一个xhr对象同时发送请求时,只会执行最后一次请求的回调,如果是ff则会出错

  9. geqian5 说:

    恩,请问有没有方法解决这个问题呢?

  10. waterskin 说:

    有没有朋友,有思路来解决这个问题呢~

  11. bobowanzi 说:

    配置有问题

  12. bobowanzi 说:

    配置没有问题啊,不然怎么能跑通呢

  13. rongxin 说:

    希望有朋友帮忙给个解决的思路~

  14. lee 说:

    继续问下,问题还没解决

我要评论

评论功能因故关闭!

请加入我们的QQ群一起参与讨论:群号59400482(500人超级群)


返回首页 | 关于我们 | 联系我们 | 广告合作 | 网站地图 | 友情链接 | 版权声明