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 相关文章推荐
$.ajax json数据传递方法
Nov 19 Javascript
解决Jquery load()加载GB2312页面时出现乱码的两种方案
Sep 10 Javascript
JQuery判断HTML元素是否存在的两种解决方法
Dec 26 Javascript
jquery插件开发之实现md5插件
Mar 17 Javascript
JS实现拖动滚动条评分的效果代码分享
Sep 29 Javascript
jQuery使用siblings获取某元素所有同辈(兄弟姐妹)元素用法示例
Jan 30 Javascript
jQuery元素选择器实例代码
Feb 06 Javascript
vue动态生成dom并且自动绑定事件
Apr 19 Javascript
浅析JS中常用类型转换及运算符表达式
Jul 23 Javascript
AngularJS的$location使用方法详解
Oct 19 Javascript
vue中SPA单页面应用程序详解
Nov 07 Javascript
微信小程序如何实现五星评价功能
Oct 15 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设计模式之命令模式使用示例
2014/03/02 PHP
Codeigniter中禁止A Database Error Occurred错误提示的方法
2014/06/12 PHP
redirect_uri参数错误的解决方法(必看)
2017/02/16 PHP
PHP利用curl发送HTTP请求的实例代码
2020/07/09 PHP
用js实现控制内容的向上向下滚动效果
2007/06/26 Javascript
js 金额文本框实现代码
2012/02/14 Javascript
不提示直接关闭网页窗口的JS示例代码
2013/12/17 Javascript
获取select元素被选中的文本内容的js代码
2014/01/29 Javascript
JavaScript框架(iframe)操作总结
2014/04/16 Javascript
上传图片js判断图片尺寸和格式兼容IE
2014/09/01 Javascript
基于jquery fly插件实现加入购物车抛物线动画效果
2016/04/05 Javascript
基于JavaScript实现单选框下拉菜单添加文件效果
2016/06/26 Javascript
jQuery+Pdo编写login登陆界面
2016/08/01 Javascript
用nodejs的实现原理和搭建服务器(动态)
2016/08/10 NodeJs
通过扫描二维码打开app的实现代码
2016/11/10 Javascript
Angular的模块化(代码分享)
2016/12/26 Javascript
Node.js中环境变量process.env的一些事详解
2017/10/26 Javascript
vue-cli项目根据线上环境分别打出测试包和生产包
2018/05/23 Javascript
vue动态配置模板 'component is'代码
2019/07/04 Javascript
Vue前端判断数据对象是否为空的实例
2020/09/02 Javascript
PyChar学习教程之自定义文件与代码模板详解
2017/07/17 Python
Python实现简单的文本相似度分析操作详解
2018/06/16 Python
Python中is和==的区别详解
2018/11/15 Python
用Cython加速Python到“起飞”(推荐)
2019/08/01 Python
flask 实现token机制的示例代码
2019/11/07 Python
使用HTML5 IndexDB存储图像和文件的示例
2018/11/05 HTML / CSS
材料专业毕业生求职信
2014/02/26 职场文书
美容院营销方案
2014/03/05 职场文书
精彩广告词大全
2014/03/19 职场文书
《长相思》听课反思
2014/04/10 职场文书
2014年党风廉政工作总结
2014/12/03 职场文书
2014个人年终工作总结范文
2014/12/15 职场文书
个人求职信格式范文
2015/03/20 职场文书
小学毕业感言100字
2015/07/30 职场文书
《角的初步认识》教学反思
2016/02/17 职场文书
又涨知识了,自律到底多重要?
2019/06/27 职场文书