本帖最后由 zhangzhe894 于 2012-11-14 23:44:55 编辑

解决方案 »

  1.   

    check(1);
    //这里得到 postdata = 'aaaa';并发送ajax post 但没执行完
    check(2);
    //这里得到 postdata = 'bbbb';并且替换了上面的postdata = 'aaaa'; 并发送ajax post
    //过了一会 两个ajax分别执行成功并返回值,并弹出 alert(postdata);所以两次都是'bbbb';
    证明:
    var x = new cosAjax('HTML');
        alert(id);//返回顺序为 1,2,'bbbb','bbbb'解决方法:check(1);
        function check(id){
            switch(id)
            {
                case 1:
                    postdata = 'aaaa';
                    break
                case 2:
                    postdata = 'bbbb';
                    break
                default:
                    postdata = 'ccc';
                    break
            }
            var x = new cosAjax('HTML');
            alert(id);
            x.post('http://127.0.0.3/','',function(s){
                alert(postdata);
                if(id==1){
                    check(2);//得让1执行完后再执行2
                }
            });
        }
      

  2.   

    非常感谢阁下的回复, 假如check(1) , check(2) , check(3) , check(n) 同时进行, javascript能否像其他语言一样可以动态创建线程进行处理呢?  : )
      

  3.   

    if(id==1){
                    check(2);//得让1执行完后再执行2
                }
    改成:
    id++;
                if(id<n){
                    check(id);
                }
      

  4.   

    thank you very much~