ajax异步请求

来源:互联网 发布:金达莱花网络歌手唱的 编辑:程序博客网 时间:2024/06/07 09:05

虽然一直清除ajax是异步请求,但其实一直以来都只把它当成一种局部刷新技术,做项目的时候就遇到问题了。
这里写图片描述
需求是,当一个用户进入界面进行操作,选择了地区,进行相应的操作后点击保存后,当用户再次进入该界面,如之前他选择了广东-广州,那他下次进入,地区显示上还应该是广州-广东。
因为页面内容加载什么都用了ajax请求,故本人的操作是:页面加载调用ajax请求从数据库查询之前用户有无操作进行保存了数据,若有,则取出上次选择的地址(省和市)(假设该方法为functuionA()),然后再请求另一个ajax,获取所有的省市信息,省和市的显示之前获取到的前一次的省市信息(假设该方法为functuionB())。初始化的时候方法加载顺序为:

functuionA()functuionB()

就这么个看起来简单的问题,最后结果始终不对,虽然方法加载的时候写的是先functuionA再functuionB,但是ajax是异步请求,你不知道functuionA和functuionB到底哪个先加载完。
解决办法是在ajax请求的时候加上

async: false

即将异步变成同步请求,请求的时候会按照先functuionA()再functuionB()的顺序请求,解决也就对了。

拓展:

functionA(){    var i = 1;    $.ajax({    ……    success: function (result) {        var i = 2;        }      }    });functionB(){    $.ajax({    ……    success: function (result) {        var i = 3;        }      }    });$(function(){    functionA();    functionB();});

i的结果到底等于多少是未知的。

转载请注明原址:http://blog.csdn.net/zheng911209/article/details/47131607

0 0
原创粉丝点击