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高级程序设计 阅读笔记(十七) js事件
Aug 14 Javascript
使用javascript获取页面名称
Dec 23 Javascript
jquery实现弹出层效果实例
May 19 Javascript
jQuery+canvas实现简单的球体斜抛及颜色动态变换效果
Jan 28 Javascript
jQuery组件easyui对话框实现代码
Aug 25 Javascript
JS给Array添加是否包含字符串的简单方法
Oct 29 Javascript
JS中parseInt()和map()用法分析
Dec 16 Javascript
使用openSpeDiv方法实现Ecshop登录弹窗框效果
Mar 13 Javascript
详解vue mint-ui源码解析之loadmore组件
Oct 11 Javascript
vue在手机中通过本机IP地址访问webApp的方法
Aug 15 Javascript
vue-for循环嵌套操作示例
Jan 28 Javascript
js+springMVC 提交数组数据到后台的实例
Sep 21 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
人尽可用的Windows技巧小贴士之下篇
2007/03/22 PHP
PHP include_path设置技巧分享
2011/07/03 PHP
PHP中去掉字符串首尾空格的方法
2012/05/19 PHP
PHP文件缓存内容保存格式实例分析
2014/08/20 PHP
PHP 进度条函数的简单实例
2017/09/19 PHP
PHP分页显示的方法分析【附PHP通用分页类】
2018/05/10 PHP
javascript编程起步(第五课)
2007/02/27 Javascript
javascript实现轮显新闻标题链接
2007/08/13 Javascript
js 对联广告、漂浮广告封装类(IE,FF,Opera,Safari,Chrome
2009/11/26 Javascript
javascript 弹出的窗口返回值给父窗口具体实现
2013/11/23 Javascript
浅谈重写window对象的方法
2014/12/29 Javascript
JavaScript实现跨浏览器的添加及删除事件绑定函数实例
2015/08/04 Javascript
轻松学习Javascript闭包函数
2015/12/15 Javascript
angular-ui-sortable实现可拖拽排序列表
2016/12/28 Javascript
利用Jasmine对Angular进行单元测试的方法详解
2017/06/12 Javascript
JS基于对象的特性实现去除数组中重复项功能详解
2017/11/17 Javascript
SpringBoot+Vue前后端分离,使用SpringSecurity完美处理权限问题的解决方法
2018/01/09 Javascript
jquery+css3实现熊猫tv导航代码分享
2018/02/12 jQuery
Angular ui-roter 和AngularJS 通过 ocLazyLoad 实现动态(懒)加载模块和依赖
2018/11/25 Javascript
vscode vue 文件模板的配置方法
2019/07/23 Javascript
ElementUI Tree 树形控件的使用并给节点添加图标
2020/02/27 Javascript
详解Python中的__getitem__方法与slice对象的切片操作
2016/06/27 Python
python安装模块如何通过setup.py安装(超简单)
2018/05/05 Python
python中的for循环
2018/09/28 Python
解决Shell执行python文件,传参空格引起的问题
2018/10/30 Python
pytorch使用Variable实现线性回归
2019/05/21 Python
pytorch cuda上tensor的定义 以及减少cpu的操作详解
2020/06/23 Python
python模拟点击玩游戏的实例讲解
2020/11/26 Python
弄清Pytorch显存的分配机制
2020/12/10 Python
详解CSS3中Media Queries的相关使用
2015/07/17 HTML / CSS
Paradigit比利时电脑卖场:购买笔记本、电脑、平板和外围设备
2016/11/28 全球购物
2016春节家属慰问信
2015/03/25 职场文书
企业员工辞职信范文
2015/05/12 职场文书
《中国机长》观后感:敬畏生命,敬畏职责
2019/11/12 职场文书
python神经网络Xception模型
2022/05/06 Python
Python中的socket网络模块介绍
2022/07/23 Python