日期:2014-05-17  浏览次数:20398 次

Ajax方法的执行顺序
 
function fun1()
{
  $.ajax{} 
}

function fun2()
{
  $.ajax{.... success:function(msg){ fun1() }}; 

}

大致结构如上 我想当 fun2 中的方法每次调用 fun1() 的时候 先让fun1() 执行完毕后 在继续执行 
 有没有方法可以做到?

------解决方案--------------------
那就不要放在ajax中,
function fun2()
{
fun1() ;
$.ajax{.... success:function(msg){ }};

}

------解决方案--------------------
差不多吧
------解决方案--------------------
这种问题也拿来问,自己还是多想想吧
------解决方案--------------------
探讨

引用:
那就不要放在ajax中,
function fun2()
{
fun1() ;
$.ajax{.... success:function(msg){ }};

}

问题就是 这个方法需要的参数是从那个里面获取出来的

------解决方案--------------------
不知道大家为什么对这个问题这么陌生,在发送请求的属性里面将async:false就行了啊,表明这不是异步方法,他就会等待执行完毕然后继续。

JScript code

function checkCode(code){
    $.ajax({
    url: '/admin/WebService1.asmx/CheckVerifyImage',
    type: 'POST',
    dataType:"xml",
    data:{code:code},
    [color=#FF0000]async:false,[/color]
    success: function(msg){
        isCodeRight=msg.text;
    },
    error: function(x, e) {
        alert(x.responseText);
        return false;
    }});
}

------解决方案--------------------
闻道有先后,术业有专攻。不知道就问,我前几天也问了这个问题http://topic.csdn.net/u/20100618/16/1164465b-51af-47f1-a713-a3d301b27e56.html
------解决方案--------------------
探讨

闻道有先后,术业有专攻。不知道就问,我前几天也问了这个问题http://topic.csdn.net/u/20100618/16/1164465b-51af-47f1-a713-a3d301b27e56.html

------解决方案--------------------
这个是异步的问题,

出现异步的字眼,,就要想到方法的执行是并行的,

简单理解同步代表是一个执行序列,是有顺序的,而异步是不用等上一操作执行完毕,就可以执行下一步操作

你的fun1 和 fun2

都是异步,具体怎么改,,应该知道吧?

把fun2 放在fun1 AJAX 成功回调方法里,才能保证执行fun2 前 先执行 fun1

如果改成async 这个属性,成同步的话,那要AJAX 何用...


------解决方案--------------------
初学者。顶下
------解决方案--------------------
顶一下
------解决方案--------------------
太赞成楼主的第二次发言了,现在就是有些这种人,以为自己学得很好,懂得挺多,其实呀都是装BI的
------解决方案--------------------
你说的不行是不能顺序执行还是什么不行啊?
------解决方案--------------------
探讨
不知道大家为什么对这个问题这么陌生,在发送请求的属性里面将async:false就行了啊,表明这不是异步方法,他就会等待执行完毕然后继续。


JScript code

function checkCode(code){
$.ajax({
url: '/admin/WebService1.asmx/CheckVerifyImage',
type: 'POS……

------解决方案--------------------
是啊,把导步去掉的话,ajax也就没啥作用啦,这种问题确实很纠结
------解决方案--------------------
从你贴的代码来看,,两个AJAX 可以合并成一个

一步到位的返回RoleName不好吗?
------解决方案--------------------
要是我的话 把剩下要执行的代码再封装起来,等fun1执行完了,再去执行

JScript code

function fun1()
{
  $.ajax{}  
}

function fun2()
{
  $.ajax{.... success:function(msg){ fun1() }};  
  语句块1
}

//--------改写成--------------------------------

function fun1()
{
  $.ajax{.... success:function(msg){ fun3() }};  
}

function fun2()
{
  $.ajax{.... success:function(msg){ fun1() }};  
  
}

fun3()
{
 语句块1
}