ajax通常情况下都是执行异步请求,这样用户体验上更友好,但有时还是存在需要同步执行的情况的。</span>
比如,我需要需要通过ajax请求后返回数据,这个数据必须是在ajax后才执行的,此时就要用到asnyc:false(ajax默认是true,即异步);
async:true,(默认):异步,$.Ajax执行后,会继续执行ajax后面的脚本,直到服务器端返回数据后,触发$.Ajax里的success方法,这时候执行的是两个线程。
async:false:同步,所有的请求均为同步请求,在没有返回值之前,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。
//获取老的数据
function t() {
$.ajax({
url: "/home/GetShopHeadStyle",
type: "get",
dataType: "json",
async: false,
success: function (data) {
if (data.state) {
s = eval('(' + data.headStyle + ')');
}
}<pre name="code" class="html"> //初始化
init: function () {
t();
$('#colorsample-pickh').css("background-color", "#"+s.currentConfig.bgColor)
}
}) }
此地方必须是等t()加载返回数据后才执行出初始化函数,否则初始化颜色则不成功