日期:2014-05-16  浏览次数:20770 次

new Ajax.Request
本帖最后由 showbo 于 2014-04-16 10:03:50 编辑
今天写了一个demo 其中用到了ajax 很奇怪的是 我定义的一个变量 ajax确实返回了 并且更改了 但是要alert之后 变量的值才会变成最新的 原本以为是并行执行的问题 但是加入了休眠之后 也是不起作用的 大神们 有遇到这样的情况吗? 下边是代码

 
    new Ajax.Request(url, {
         method: 'post',
         parameters: 'id=' + id,
         onComplete: function (response) {
             var data = response.responseText;
             if (data != null) {
                 var json = eval("(" + data + ")");
                 bianliang = json["test"];
             }
         }
     });
     //alert(bianliang);
     if (bianliang != null) {
         //........
     }

id上边定义过 这里就没贴出来
bianliang确实是已经获取到了  但是如果我把alert那一行注释掉 变量还是原来的值 不是ajax请求改变的值 
很奇怪必须要alert  大神们有遇到这样的情况吗
------解决方案--------------------
这就是同步与异步的区别
------解决方案--------------------
改下执行顺序呢。。
------解决方案--------------------
引用:
Quote: 引用:

这就是同步与异步的区别

我尝试在里边加入同步 async: false   但是依然不起作用


你肯定得改成同步执行的才行,至于怎么配置成同步的,你要看别人的类库怎么写的