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剩余字数计算的代码
Jul 03 Javascript
主页面中的两个iframe实现鼠标拖动改变其大小
Apr 16 Javascript
jquery实现点击消失的代码
Mar 03 Javascript
百度判断手机终端并自动跳转js代码及使用实例
Jun 11 Javascript
关于JavaScript的变量的数据类型的判断方法
Aug 14 Javascript
javascript事件捕获机制【深入分析IE和DOM中的事件模型】
Dec 15 Javascript
JSON 数据格式详解
Sep 13 Javascript
vue2.0模拟锚点的实例
Mar 14 Javascript
Vue 获取数组键名的方法
Jun 21 Javascript
jQuery插件实现弹性运动完整示例
Jul 07 jQuery
微信小程序获取公众号文章列表及显示文章的示例代码
Mar 10 Javascript
JS原生实现轮播图的几种方法
Mar 23 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配置文件中最常用四个ini函数
2007/03/19 PHP
PHP 进程锁定问题分析研究
2009/11/24 PHP
ThinkPHP之getField详解
2014/06/20 PHP
PHP实现一个按钮点击上传多个图片操作示例
2020/01/23 PHP
newxtree.js代码
2007/03/13 Javascript
javascript firefox不显示本地预览图片问题的解决方法
2008/11/12 Javascript
Jquery知识点二 jquery下对数组的操作
2011/01/15 Javascript
JavaScript判断密码强度(自写代码)
2013/09/06 Javascript
js中settimeout方法加参数
2014/02/28 Javascript
javascript实时显示北京时间的方法
2015/03/12 Javascript
PHP抓取HTTPS内容和错误处理的方法
2016/09/30 Javascript
AngularJS入门教程之Helloworld示例
2016/12/25 Javascript
js如何编写简单的ajax方法库
2017/08/02 Javascript
JS设计模式之惰性模式(二)
2017/09/29 Javascript
常用的9个JavaScript图表库详解
2017/12/19 Javascript
如何在vue里面优雅的解决跨域(路由冲突问题)
2019/01/20 Javascript
vue element-ui实现动态面包屑导航
2019/12/23 Javascript
python中使用urllib2获取http请求状态码的代码例子
2014/07/07 Python
Python中内建函数的简单用法说明
2016/05/05 Python
Python守护进程和脚本单例运行详解
2017/01/06 Python
利用Python自带PIL库扩展图片大小给图片加文字描述的方法示例
2017/08/08 Python
Python3.x对JSON的一些操作示例
2017/09/01 Python
Anaconda入门使用总结
2018/04/05 Python
解决Mac安装scrapy失败的问题
2018/06/13 Python
python+opencv实现高斯平滑滤波
2020/07/21 Python
Python中的 is 和 == 以及字符串驻留机制详解
2019/06/28 Python
Python利用myqr库创建自己的二维码
2020/11/24 Python
css3的@media属性实现页面响应式布局示例代码
2014/02/10 HTML / CSS
运动鞋中的劳斯莱斯:索康尼(SAUCONY)
2017/08/09 全球购物
自我评价优秀范文分享
2013/11/30 职场文书
大学四年个人自我小结
2014/03/05 职场文书
婚假请假条怎么写
2014/04/10 职场文书
教师节倡议书
2014/08/30 职场文书
2014年涉外离婚协议书范本
2014/11/20 职场文书
SqlServer数据库远程连接案例教程
2021/07/15 SQL Server
聊聊Python String型列表求最值的问题
2022/01/18 Python