DWR的异步与同步的控制
来源:互联网 发布:mac os无guid分区表 编辑:程序博客网 时间:2024/06/16 08:21
DWR的异步与同步的控制
首先,要注意dwr自带的js包导入顺序, 正确如下:
<script src='/dwr/engine.js'></script>
<script src='/dwr/util.js'></script>
<script src='/dwr/interface/checkAction.js'></script>
在DWR的engine.js文件中有setAsync方法,就是设置调用是否是同步的,还是异步的。
js 代码
if
(testProjectId != -2){
DWREngine.setAsync(
false
);
checkAction.existCustomer(customerGroupNo,
function
(isExist){
if
(isExist){
alert(
'!!!!!!'
);
}
});
DWREngine.setAsync(
true
);
}
上面这段代码就是设置DWR是同步返回的。
如果不同步返回的话,紧跟其后的操作就没法进行了。
注意:
进入 dwr.jar 包, 打开 org\directwebremoting\engine.js 文件,
搜索该文件中是否存在DWREngine变量的定义。
(因为在dwr3.x版本的engine.js中已经取消了DWREngine的定义)
如果没有DWREngine,可以把 DWREngine 改为 dwr.engine,试试即可知道该方法是否有效了。
项目当中用到了DWR,在页面加载数据的时候出现了一点小问题: 调用了一个ajax的方法得到一组数据量比较大的对象.当然在页面上已经被convert成了js数组.在整个异步调用的过程当中花的时间要多一些.结果导致了一些数据显示了.
一些数据没显示.对下一步操作产生了影响. 网上查询了一下,解决的方法是
设置dwr的javascript:dwr.engine.setAsync(false); 将dwr的通信方式改成同步的.(既dwr会等待服务器.将数据接受完毕后.再继续进行.)
javascript:dwr.engine.setAsync(false);的作用域.是当前的整个页面.既是javascript:dwr.engine.setAsync(false)在同一张页面上有用.既设置了以后这张页面上的所有dwr方法都是同步的. 但是其他的页面如果用到了dwr调用远程方法还是异步的.
- DWREngine.setAsync(false);
- Property.validateCode(codeNum.Trim(),function(data)
- {
-
-
{ -
flag = -
} -
document.getElementByIdx( -
flag = -
} - });
- DWREngine.setAsync(true);
上面这段代码就是设置DWR是同步返回的。
- DWR的异步与同步的控制
- DWR的同步与异步
- DWR与js的同步异步问题
- 关于DWR的同步和异步问题!
- DWR的同步和异步使用方式
- dwr异步与同步处理
- DWR的用法以及同步和异步的设置
- Dwr的同步设置
- DWR的同步问题
- 同步与异步的概念
- 同步与异步的理解
- 同步与异步的区别
- 线程的同步与异步
- 同步与异步的区别
- 同步与异步的区别
- 同步与异步的区别
- 异步与同步的理解
- 同步与异步的区别
- listview分割线设置两边不贴边
- unity开发 --------- NGUI (UIDragPanelContents、UIDraggablePanel、UICenterOnChild、UIScollBar、SpringPanel)
- HDU - 1171 Big Event in HDU
- c语言-取整-求余
- 一个美国ECO PHD两年的学习总结
- DWR的异步与同步的控制
- django 在shell环境下不自动提交的问题
- 如何让人在10秒之内记住你的APP
- 学习笔记——node.js
- nginx配置详细说明
- python解析json
- 链表反转程序
- 忘记电脑开机密码怎么办?2个妙招能解决
- codeforces round#235 (div.2) A,B,C