js 写 ajax 求助....

我用ajax来获取服务器的数据,但是这个数据不可以直接用要和下一个数据联合起来才可以一起用.就像这个样子.functionfun(){vara=getA();//从服务器... 我用ajax来获取服务器的数据,但是这个数据不可以直接用要和下一个数据联合起来才可以一起用.就像这个样子.
function fun()
{
var a = getA();//从服务器获取A.
var webA = getWebA();//从网页获取A;
if(webA != A){
setA(a);
}
}
这样ajax 的异步通信就让我无比蛋疼了.因为浏览器被冻结是绝对不允许发生的所以同步就不可以使用了.但是如果用回调函数又让我的API无比恶心.
因为还有些函数是这样的
function fun()
{
var a = getA();//从服务器获取A.
var A_name = getName(A)//从服务器获取A的姓名...
}
这样子如果要用回调来解决这个问题就要把我的函数切分成3端以上来回调,巨恶心...
各位大侠在下实在没办法的,求指点啊...
更正,更正,不是不允许对getA()的改造,而是不可以把别的函数功能添加到getA()中.

我想通过设立一个全局变量 var A;
然后给getA(fun)添加一个参数,就是一个函数指针.在ajax成功返回后调用原来的函数.
function fun(){
if(!A) A = getA(fun);
else{
var A_name = getName(A);
A = null;

}

}
这样在getA()结束后A就会继续调用getA(fun)函数.来继续执行fun()函数未执行完的部分,各位高手觉得如何..
展开
 我来答
创作者AHLhc224hw
2012-12-10 · TA获得超过947个赞
知道小有建树答主
回答量:751
采纳率:0%
帮助的人:313万
展开全部
把你的 getA() 和 getName() 封装成一个方法 postHandler ,然后可以把fun()这个方法做为postHandler的回调函数,当然fun()这个方法需要添加两个参数(1个是getA的返回参数,1个是getName的返回参数)。
--------------------------------------------------------------------
//定义方法
function postHandler( callback ){
var a = getA();

var a_name = getName();

callback( a , a_name );

}
//调用
postHandler( fun ) ;
更多追问追答
追问
先谢过高手了,不过由于这个程序交互性比较强,是一个用网页来控制设备的项目.
getA() 这个函数要被很多的顶层函数所调用,比如像这样.

function fun(){
var a = getA();
var properity = getProperity(a);
var state = getState(a);
}
看到最长的那个函数有6次 ajax的调用.(-_-|||);
因此对getA()的任何改装都是不被允许的(-_-|||);
追答
一个函数中多次ajax调用,并且都是异步的,那这些ajax请求没有先后顺序吗?
深宝呀n
2012-12-10 · 超过13用户采纳过TA的回答
知道答主
回答量:23
采纳率:0%
帮助的人:30.6万
展开全部
把getA()和getWebA()合为一个ajax请求,webA和A的判断也放后台执行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式