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 相关文章推荐
教你用AngularJS框架一行JS代码实现控件验证效果
Jun 23 Javascript
jQuery中extend函数详解
Feb 13 Javascript
JavaScript类型系统之正则表达式
Jan 05 Javascript
js调用屏幕宽度的简单方法
Nov 14 Javascript
vue2滚动条加载更多数据实现代码
Jan 10 Javascript
JS实现的验证身份证及获取地区功能示例
Jan 16 Javascript
创建一般js对象的几种方式
Jan 19 Javascript
AngularJS 教程及实例代码
Oct 23 Javascript
理理Vue细节(推荐)
Apr 16 Javascript
Vue实现商品分类菜单数量提示功能
Jul 26 Javascript
eslint+prettier统一代码风格的实现方法
Jul 22 Javascript
解决Vue router-link绑定事件不生效的问题
Jul 22 Javascript
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
PHP中copy on write写时复制机制介绍
2014/05/13 PHP
PHP错误机制知识汇总
2016/03/24 PHP
php实现的中文分词类完整实例
2017/02/06 PHP
PHP设计模式之装饰器(装饰者)模式(Decorator)入门与应用详解
2019/12/13 PHP
TP5框架安全机制实例分析
2020/04/05 PHP
更正确的asp冒泡排序
2007/05/24 Javascript
用javascript实现在小方框中浏览大图的代码
2007/08/14 Javascript
使用CSS3的scale实现网页整体缩放
2014/03/18 Javascript
javascript实现无限级select联动菜单
2015/01/02 Javascript
简述Jquery与DOM对象
2015/07/10 Javascript
AngularJS基础教程之简单介绍
2015/09/27 Javascript
轻松搞定jQuery.noConflict()
2016/02/15 Javascript
一起学写js Calender日历控件
2016/04/14 Javascript
canvas红包照片实例分享
2017/02/28 Javascript
解决vuejs 使用value in list 循环遍历数组出现警告的问题
2018/09/26 Javascript
使vue实现jQuery调用的两种方法
2019/05/12 jQuery
Nodejs异步流程框架async的方法
2019/06/07 NodeJs
js实现旋转木马轮播图效果
2020/01/10 Javascript
介绍Python的Django框架中的QuerySets
2015/04/20 Python
python写入中英文字符串到文件的方法
2015/05/06 Python
Python基础教程之正则表达式基本语法以及re模块
2016/03/25 Python
利用Python画ROC曲线和AUC值计算
2016/09/19 Python
Pycharm学习教程(7)虚拟机VM的配置教程
2017/05/04 Python
Python动刷新抢12306火车票的代码(附源码)
2018/01/24 Python
python3爬虫之设计签名小程序
2018/06/19 Python
Python爬虫PyQuery库基本用法入门教程
2018/08/04 Python
Python实现登陆文件验证方法
2018/10/06 Python
python数据批量写入ScrolledText的优化方法
2018/10/11 Python
Tensorflow 1.0之后模型文件、权重数值的读取方式
2020/02/12 Python
html5实现canvas阴影效果示例
2014/05/07 HTML / CSS
JD Sports马来西亚:英国领先的运动鞋和运动服饰零售商
2018/03/13 全球购物
大学本科生的个人自我评价
2013/12/09 职场文书
高中校园广播稿
2014/01/11 职场文书
幼儿园中秋节活动方案
2014/02/06 职场文书
初中生庆国庆演讲稿范文2014
2014/09/25 职场文书
《好妈妈胜过好老师》:每个孩子的优秀都是有源头的
2020/01/03 职场文书