采用DWR获取java程序的值,然后我要用获取的值给javascript变量赋值,但是很郁闷,居然要先执行alert语句才能正确显示赋值的结果,如果javascript代码如下:(其中remote.isRepeat是调用java类)
var repeatFlag = 0;
remote.isRepeat("hell", function(msg) {
if (msg > 0) {
repeatFlag = 1;
}
});
alert("hahaha!");
alert(repeatFlag);
那么alert(repeatFlag)的时候就能得到赋值后的正确结果1而不是原始的0
但是如果吧前面的那一句alert("hahaha!");去掉,则alert(repeatFlag)的结果就是原始0,根本没有被赋值(当然赋值的条件是肯定满足的情况下)查阅了一下网上资料,都说是DWR同步和异步的问题,要加上dwr.engine.setAsync(false);,但我没看懂,http://blog.csdn.net/zxkevin1989/article/details/7282315 这里就有提到,请问就我如下的代码而言,问题究竟出在哪里呢?
var repeatFlag = 0;
remote.isRepeat("hell", function(msg) {
if (msg > 0) {
repeatFlag = 1;
}
});
alert("hahaha!");
alert(repeatFlag);
那么alert(repeatFlag)的时候就能得到赋值后的正确结果1而不是原始的0
但是如果吧前面的那一句alert("hahaha!");去掉,则alert(repeatFlag)的结果就是原始0,根本没有被赋值(当然赋值的条件是肯定满足的情况下)查阅了一下网上资料,都说是DWR同步和异步的问题,要加上dwr.engine.setAsync(false);,但我没看懂,http://blog.csdn.net/zxkevin1989/article/details/7282315 这里就有提到,请问就我如下的代码而言,问题究竟出在哪里呢?
但现在就是和这个有关,我看到网上其他人也问到类似的问题.remote.isRepeat是DWR调用java类的方法,这个方法执行正常的,否则就不会有那个返回的msg了,那个返回的msg也是对的,
你说的很清楚啊!我大概明白了,就是这个同步的设置究竟要加在那个位置?我试过都不成功,我在研究一下DWR的文档吧,谢谢
但现在就是和这个有关,我看到网上其他人也问到类似的问题.remote.isRepeat是DWR调用java类的方法,这个方法执行正常的,否则就不会有那个返回的msg了,那个返回的msg也是对的,
我只在dwr的网站看到:
Remote.method(params, callMetaData);
dwr.engine.setAsync(false);//加上这句之后,alert("hahaha!");那句可以去掉了,可正常赋值成功,否则没这句的话非要加上alert("hahaha!");才能让repeatFlag = 1;赋值成功
var repeatFlag = 0;
remote.isRepeat("hell",
function(msg) {
if (msg > 0) {
repeatFlag = 1;
}
});
//alert("hahaha!");//现在这句可以去掉了!
alert(repeatFlag);
if (msg > 0) {
repeatFlag = 1;
}
}回调函数中去处理