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 相关文章推荐
js获取class的所有元素
Mar 28 Javascript
浅谈JavaScript变量的自动转换和语句
Jun 12 Javascript
JavaScript禁止用户多次提交的两种方法
Jul 24 Javascript
JavaScript实现拖拽元素对齐到网格(每次移动固定距离)
Nov 30 Javascript
ES6新增数据结构WeakSet的用法详解
Aug 07 Javascript
图文讲解用vue-cli脚手架创建vue项目步骤
Feb 12 Javascript
详解element-ui日期时间选择器的日期格式化问题
Apr 08 Javascript
iview form清除校验状态的实现
Sep 19 Javascript
微信小程序全局变量的设置、使用、修改过程解析
Sep 24 Javascript
详解关闭令人抓狂的ESlint 语法检测配置方法
Oct 28 Javascript
JavaScript语句错误throw、try及catch实例解析
Aug 18 Javascript
vue.js封装switch开关组件的操作
Oct 26 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 header功能的使用
2013/10/28 PHP
php判断ip黑名单程序代码实例
2014/02/24 PHP
zend framework中使用memcache的方法
2016/03/04 PHP
如何通过View::first使用Laravel Blade的动态模板详解
2017/09/21 PHP
php生成微信红包数组的方法
2019/09/05 PHP
如何通过PHP实现Des加密算法代码实例
2020/05/09 PHP
Javascript基础教程之argument 详解
2015/01/18 Javascript
实例解析jQuery插件EasyUI最常用的表单验证规则
2015/11/29 Javascript
jQuery深拷贝Json对象简单示例
2016/07/06 Javascript
基于jquery实现弹幕效果
2016/09/29 Javascript
几种tab切换详解
2017/02/03 Javascript
Vue.js对象转换实例
2017/06/07 Javascript
利用纯js + transition动画实现移动端web轮播图详解
2017/09/10 Javascript
什么是Vue.js框架 为什么选择它?
2017/10/17 Javascript
详解js的作用域、预解析机制
2018/02/05 Javascript
echarts统计x轴区间的数值实例代码详解
2019/07/07 Javascript
JavaScript undefined及null区别实例解析
2020/07/21 Javascript
vue 使用原生组件上传图片的实例
2020/09/08 Javascript
在Heroku云平台上部署Python的Django框架的教程
2015/04/20 Python
Python处理XML格式数据的方法详解
2017/03/21 Python
Python3 模块、包调用&路径详解
2017/10/25 Python
Python字典,函数,全局变量代码解析
2017/12/18 Python
python3读取csv和xlsx文件的实例
2018/06/22 Python
python爬取酷狗音乐排行榜
2019/02/20 Python
java中的控制结构(if,循环)详解
2019/06/26 Python
python3实现的zip格式压缩文件夹操作示例
2019/08/17 Python
浅谈pycharm使用及设置方法
2019/09/09 Python
PyChon中关于Jekins的详细安装(推荐)
2020/12/28 Python
html5定制表单_动力节点Java学院整理
2017/07/11 HTML / CSS
html5 http的轮询和Websocket原理
2018/10/19 HTML / CSS
AmazeUI的JS表单验证框架实战示例分享
2020/08/21 HTML / CSS
意大利体育用品和运动服网上商店:Maxi Sport
2019/09/14 全球购物
外企C语言笔试题
2013/11/10 面试题
实习教师自我鉴定
2013/09/27 职场文书
给儿子的表扬信
2014/01/15 职场文书
2015年计划生育责任书
2015/05/08 职场文书