jquery中ajax函数执行顺序问题
[问题点数:50分,结帖人kingmaple]
|
楼主
发表于: 2010-10-04 18:26:43
先上代码
在这个existProduct(obj)这个函数中,我调用jquery中的getJSON函数,返回数据库中查找的结果,这个用firebug查过应该没有问题,离谱的就是在执行的时候,代码先执行的return falg,然后再执行getJSON,请高手指点指点 | ||
|
#1 得分:10
回复于: 2010-10-04 20:55:41
| ||
|
#2 得分:0
回复于: 2010-10-05 08:46:59
yes 或no 是../product/searchProductByName.action 返回的json ,格式为[{"existproduct":"yes(no)"}],也可以取到这个值,只是顺序不一样,existProduct(obj)方法首先没有执行异步请求,而是先返回回调函数中的falg,由于falg没有初始化,我在浏览器中alert看到就是undefine,然后才是执行异步请求,接着再回到回调函数中返回falg='yes'或是'no',这是什么原因呀
|
#3 得分:30
回复于: 2010-10-05 10:28:56
函数中返回值没有什么用的
你需要在existProduct方法中声明一个变量,并且ajax用$.ajax来发送,设置为同步的,在回调函数设置这个变量,然后再existProduct最后返回这个变量
| |||
|
#4 得分:10
回复于: 2010-10-05 11:28:07
ajax默认是异步的,也就是说不等你上面的代码运行完,它就执行下面的代码了,所以才会出现你说的情况,你可以设置它为同步。那就先执行上面的代码,然后,再执行下面的代码。
|