Ajax执行顺序流程及回调问题分析


Posted in Javascript onDecember 10, 2012

一个全局的变量var JsonData;
我这里有一个Ajax处理的方法:
JScript code:

function GetJson(DataSourceName) { 
$.ajax({ 
type: “post”, 
url: “Ajax/AjaxData.ashx?MethodName=” + DataSourceName, 
contentType: “application/json;”, 
data: “”, 
dataType: “json”, 
success: function (Result) { 
JsonData = Result; 
}, 
error: function (result) { 
alert(“获取信息列表错误”); 
window.close(); 
} 
}); 
return JsonData; 
}

然后我有一个类。
JScript code:
function DrawDropDownList(sFieldRuleMethod) 
{ 
GetJson(sFieldSourceName); 
var b = JsonData; 
}

如此,我在执行DrawDropDownList的时候,为什么总是获取不到JsonData呢?
我打断点跟踪了下, 发现是等DrawDropDownList方法里面的所有都执行完以后才会进入GetJson方法,
请问有什么办法把GetJson里面获得的Result数据拿出来?
不要在
success: function (Result) { 
//Do Something 
},

我就是想把获得的数据拿出来用, 因为GetJson是一个通用的方法,不想在里面执行单个的逻辑.
不能在回调中return,并且需要同步,就可以了!
另外一种放过是不建议同步的,需要给我的函数增加一个函数参数作为回调函数,将ajax的结果传递到该函数,如下代码细节:
function GetJson(DataSourceName,callback) { 
$.ajax({ 
type: “post”, 
url: “Ajax/AjaxData.ashx?MethodName=” + DataSourceName, 
contentType: “application/json;”, 
data: “”, 
dataType: “json”, 
success: function (Result) { 
JsonData = Result; 
callback(JsonData) 
}, 
error: function (result) { 
alert(“获取信息列表错误”); 
window.close(); 
} 
}); 
//return JsonData; 
}
Javascript 相关文章推荐
JavaScript中Array 对象相关的几个方法
Dec 22 Javascript
深入理解JavaScript系列(11) 执行上下文(Execution Contexts)
Jan 15 Javascript
JS的Document属性和方法小结
Sep 17 Javascript
超炫的jquery仿flash导航栏特效
Nov 11 Javascript
js实现的彩色方块飞舞奇幻效果
Jan 27 Javascript
jQuery回到顶部的代码
Jul 09 Javascript
纯js实现悬浮按钮组件
Dec 17 Javascript
elementui的默认样式修改方法
Feb 23 Javascript
layui数据表格重载实现往后台传参
Nov 15 Javascript
js实现滑动进度条效果
Aug 21 Javascript
js节流防抖应用场景,以及在vue中节流防抖的具体实现操作
Sep 21 Javascript
详解Vue3使用axios的配置教程
Apr 29 Vue.js
js切换div css注意的细节
Dec 10 #Javascript
不同的jQuery API来处理不同的浏览器事件
Dec 09 #Javascript
addEventListener和attachEvent二者绑定的执行函数中的this不相同
Dec 09 #Javascript
Javascript获取窗口(容器)的大小及位置参数列举及简要说明
Dec 09 #Javascript
定义JavaScript二维数组采用定义数组的数组来实现
Dec 09 #Javascript
javascript操作JSON的要领总结
Dec 09 #Javascript
js写一个弹出层并锁屏效果实现代码
Dec 07 #Javascript
You might like
yii的入口文件index.php中为什么会有这两句
2016/08/04 PHP
php结合redis高并发下发帖、发微博的实现方法
2016/12/15 PHP
JSF中confirm弹出框的用法示例介绍
2014/01/07 Javascript
JS小游戏之宇宙战机源码详解
2014/09/25 Javascript
js图片翻书效果代码分享
2015/08/20 Javascript
基于jQuery实现鼠标点击导航菜单水波动画效果附源码下载
2016/01/06 Javascript
在javascript中使用com组件的简单实现方法
2016/08/17 Javascript
简单实现bootstrap导航效果
2017/02/07 Javascript
jQuery实现单击按钮遮罩弹出对话框效果(1)
2017/02/20 Javascript
微信小程序开发之相册选择和拍照详解及实例代码
2017/02/22 Javascript
NodeJs安装npm包一直失败的解决方法
2017/04/28 NodeJs
Angular5升级RxJS到5.5.3报错:EmptyError: no elements in sequence的解决方法
2018/04/09 Javascript
使用nvm和nrm优化node.js工作流的方法
2019/01/17 Javascript
详释JavaScript执行环境与执行栈
2019/04/02 Javascript
vue-router结合vuex实现用户权限控制功能
2019/11/14 Javascript
Js生成随机数/随机字符串的方法小结【5种方法】
2020/05/27 Javascript
python使用tornado实现简单爬虫
2018/07/28 Python
Python延时操作实现方法示例
2018/08/14 Python
Python Image模块基本图像处理操作小结
2019/04/13 Python
django页面跳转问题及注意事项
2019/07/18 Python
解决Django 在ForeignKey中出现 non-nullable field错误的问题
2019/08/06 Python
Python3 requests文件下载 期间显示文件信息和下载进度代码实例
2019/08/16 Python
python、PyTorch图像读取与numpy转换实例
2020/01/13 Python
如何使用pycharm连接Databricks的步骤详解
2020/09/23 Python
eBay澳大利亚站:eBay.com.au
2018/02/02 全球购物
设计师大码女装:11 Honoré
2020/05/03 全球购物
考博专家推荐信模板
2013/12/02 职场文书
毕业生的自我评价分享
2013/12/18 职场文书
经贸专业毕业生求职信
2014/03/23 职场文书
考生诚信考试承诺书
2014/05/23 职场文书
物业消防安全责任书
2014/07/23 职场文书
先进教育工作者事迹材料
2014/12/23 职场文书
五一劳动节慰问信
2015/02/14 职场文书
债务纠纷代理词
2015/05/25 职场文书
思品教学工作总结
2015/08/10 职场文书
健身房被搭讪?用python写了个小米计时器助人为乐
2021/06/08 Python