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实现禁止后退的方法
Dec 27 Javascript
Javascript 面向对象 重载
May 13 Javascript
JavaScript isArray()函数判断对象类型的种种方法
Oct 11 Javascript
JavaScript 匿名函数和闭包介绍
Apr 13 Javascript
jQuery实现简易的输入框字数计数功能示例
Jan 16 Javascript
Vue自定义指令详解
Jul 28 Javascript
Vue集成Iframe页面的方法示例
Dec 12 Javascript
Vue2 模板template的四种写法总结
Feb 23 Javascript
ES6之模版字符串的具体使用
May 17 Javascript
jQuery选择器之基本过滤选择器用法实例分析
Feb 19 jQuery
Vue起步(无cli)的啊教程详解
Apr 11 Javascript
原生js代码能实现call和bind吗
Jul 31 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
基于mysql的论坛(2)
2006/10/09 PHP
php字符串截取的简单方法
2013/07/04 PHP
php相对当前文件include其它文件的方法
2015/03/13 PHP
解析WordPress中控制用户登陆和判断用户登陆的PHP函数
2016/03/01 PHP
PHP+MySQL实现输入页码跳转到指定页面功能示例
2018/06/01 PHP
PHP使用openssl扩展实现加解密方法示例
2020/02/20 PHP
起点页面传值js,有空研究学习下
2010/01/25 Javascript
jQuery中filter()和find()的区别深入了解
2013/09/25 Javascript
JS 实现点击a标签的时候让其背景更换
2013/10/15 Javascript
jquery统计输入文字的个数并对其进行判断
2014/01/07 Javascript
动态添加删除表格行的js实现代码
2014/02/28 Javascript
向JavaScript的数组中添加元素的方法小结
2015/10/24 Javascript
修复jQuery tablesorter无法正确排序的bug(加千分位数字后)
2016/03/30 Javascript
AngularJS中的拦截器实例详解
2017/04/07 Javascript
ajax请求data遇到的问题分析
2018/01/18 Javascript
基于 Immutable.js 实现撤销重做功能的实例代码
2018/03/01 Javascript
javascript实现计算指定范围内的质数示例
2018/12/29 Javascript
node.JS事件机制与events事件模块的使用方法详解
2020/02/06 Javascript
vue实现信息管理系统
2020/05/30 Javascript
简单介绍Python中的readline()方法的使用
2015/05/24 Python
Python中线程编程之threading模块的使用详解
2015/06/23 Python
Python爬虫框架Scrapy实战之批量抓取招聘信息
2015/08/07 Python
详解Python编程中time模块的使用
2015/11/20 Python
python spyder中读取txt为图片的方法
2018/04/27 Python
Python常见字典内建函数用法示例
2018/05/14 Python
详解python使用pip安装第三方库(工具包)速度慢、超时、失败的解决方案
2018/12/02 Python
python实现点击按钮修改数据的方法
2019/07/17 Python
django数据库自动重连的方法实例
2019/07/21 Python
PyCharm 配置远程python解释器和在本地修改服务器代码
2019/07/23 Python
Python对接支付宝支付自实现功能
2019/10/10 Python
matplotlib 多个图像共用一个colorbar的实现示例
2020/09/10 Python
职工运动会感言
2014/02/07 职场文书
2015年体检中心工作总结
2015/05/27 职场文书
三严三实·严以律己心得体会
2016/01/13 职场文书
spring cloud 配置中心native配置方式
2021/09/25 Java/Android
Java实现超大Excel文件解析(XSSF,SXSSF,easyExcel)
2022/07/15 Java/Android