想请问下jquery ajax的问题
小的今天使用jQuery ajax 时候,遇到点“进程”(不知道这词用得对不对)问题;大虾们请看大致的代码示意阿,太长了,不能全写出来:
$(document).ready(function(){
$("#XXX").append("<input type='hidden' value='' id='hidden_1'");
function1(){ };
alert($("#hidden_1").val()+'3rd');
})
function1(){
jQuery.getJSON("requestURL",function(data){
alert(data.XXX + '1st');
$("#hidden_1").val(data.xxx);
})
alert($("#hidden_1").val() + '2nd');
}
弹出结果顺序为
2nd
3rd
1st
猜想是在function1()里面没有等待ajax请求结束直接进行下一步了,请问这个问题该怎么规避和解决,请大虾们不惜赐教阿
------解决方案--------------------
原因是你的function1里面的getJSON是异步的(默认就是异步),异步的意思就是新开一个后台线程执行ajax,前台线程继续往前走。
改成同步就行了,不过ajax.getJSON没有办法设置为同步。
参考这个帖子:http://topic.csdn.net/u/20101020/11/c9bf149d-29c9-44c3-9ed7-e598a9aecde9.html
------解决方案--------------------
$.get(url,{},callBack);
function callBack(data){
alert(data);
}
var d=function hh(data){
callBack(data);
}