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和JQUERY获取页面大小,滚动条位置,元素位置(示例代码)
Dec 14 Javascript
浅析IE10兼容性问题(frameset的cols属性)
Jan 03 Javascript
js实现同一页面多个不同运动效果的方法
Apr 10 Javascript
解析Vue2.0双向绑定实现原理
Feb 23 Javascript
JavaScript实现简单的树形菜单效果
Jun 23 Javascript
JavaScript满天星导航栏实现方法
Mar 08 Javascript
详解vscode中vue代码颜色插件
Oct 11 Javascript
Node.JS用纯JavaScript生成图片或滑块式验证码功能
Sep 12 Javascript
微信小程序中限制激励式视频广告位显示次数(实现思路)
Dec 06 Javascript
详解JavaScript 作用域
Jul 14 Javascript
VSCode插件安装完成后的配置(常用配置)
Aug 24 Javascript
Nest.js参数校验和自定义返回数据格式详解
Mar 29 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
中国的第一台收音机
2021/03/01 无线电
改造一台复古桌面收音机
2021/03/02 无线电
php 安全过滤函数代码
2011/05/07 PHP
CentOS 6.3下安装PHP xcache扩展模块笔记
2014/09/10 PHP
中高级PHP程序员应该掌握哪些技术?
2016/09/23 PHP
js之WEB开发调试利器:Firebug 下载
2007/01/13 Javascript
JavaScript 核心参考教程 内置对象
2009/10/13 Javascript
jQuery 选择表格(table)里的行和列及改变简单样式
2012/12/15 Javascript
带左右箭头图片轮播的JS代码
2013/12/18 Javascript
关于js里的this关键字的理解
2015/08/17 Javascript
javascript实现拖动元素交换位置
2015/11/29 Javascript
JQuery解析XML的方法小结
2016/04/02 Javascript
Angular2学习笔记——详解NgModule模块
2016/12/02 Javascript
js实现图片粘贴上传到服务器并展示的实例
2017/11/08 Javascript
Javascript将图片的绝对路径转换为base64编码的方法
2018/01/11 Javascript
Python实现对excel文件列表值进行统计的方法
2015/07/25 Python
python在不同层级目录import模块的方法
2016/01/31 Python
使用EduBlock轻松学习Python编程
2018/10/08 Python
python机器学习之神经网络实现
2018/10/13 Python
Pandas数据离散化原理及实例解析
2019/11/16 Python
Python 中@property的用法详解
2020/01/15 Python
做一个能自适应高度的textarea的示例代码
2019/09/06 HTML / CSS
美国电视购物:QVC
2017/02/06 全球购物
Nili Lotan官网:Nili Lotan同名品牌
2018/01/07 全球购物
美国奢侈品购物平台:Orchard Mile
2018/05/02 全球购物
西班牙用户之间买卖视频游戏的平台:Wakkap
2020/03/21 全球购物
阿迪达斯中国官网:Adidas中国
2020/12/14 全球购物
《颐和园》教学反思
2014/02/26 职场文书
行政主管职责范本
2014/03/07 职场文书
社区交通安全实施方案
2014/03/22 职场文书
艺术节主持词
2014/04/02 职场文书
党员批评与自我批评思想汇报(集锦)
2014/09/14 职场文书
铅球加油稿100字
2014/09/26 职场文书
优秀教研组申报材料
2014/12/26 职场文书
Mysql Show Profile
2021/04/05 MySQL
Python sklearn分类决策树方法详解
2022/09/23 Python