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 链式延迟执行DOME
Jan 04 Javascript
Javascript基础教程之数据类型 (字符串 String)
Jan 18 Javascript
JavaScript中的DSL元编程介绍
Mar 15 Javascript
JS提示:Uncaught SyntaxError: Unexpected token ILLEGAL错误的解决方法
Aug 19 Javascript
JavaScript将base64图片转换成formData并通过AJAX提交的实现方法
Oct 24 Javascript
TableSort.js表格排序插件使用方法详解
Feb 10 Javascript
利用Node.js+Koa框架实现前后端交互的方法
Feb 27 Javascript
node跨域请求方法小结
Aug 25 Javascript
[js高手之路]原型式继承与寄生式继承详解
Aug 28 Javascript
jQuery实现所有验证通过方可提交的表单验证
Nov 21 jQuery
Vue 项目部署到服务器的问题解决方法
Dec 05 Javascript
vue中keep-alive组件的入门使用教程
Jun 06 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
检查用户名是否已在mysql中存在的php写法
2014/01/20 PHP
PHP 面向对象程序设计(oop)学习笔记(三) - 单例模式和工厂模式
2014/06/12 PHP
php遍历数组的4种方法总结
2014/07/05 PHP
使用PHPCMS搭建wap手机网站
2015/09/20 PHP
PHP数学运算函数大汇总(经典值得收藏)
2016/04/01 PHP
ext combox 下拉框不出现自动提示,自动选中的解决方法
2010/02/24 Javascript
商城常用滚动的焦点图效果代码简单实用
2013/03/28 Javascript
js图片预加载示例
2014/04/30 Javascript
JavaScript取得键盘按下方向键是哪个的方法
2015/08/04 Javascript
JavaScript对HTML DOM使用EventListener进行操作
2015/10/21 Javascript
JavaScript实现Base64编码转换
2016/04/23 Javascript
原生js图片轮播效果实现代码
2016/10/19 Javascript
JavaScript 最佳实践:帮你提升代码质量
2016/12/03 Javascript
js生成随机颜色方法代码分享(三种)
2016/12/29 Javascript
vue-cli启动本地服务局域网不能访问的原因分析
2018/01/22 Javascript
微信小程序当前时间时段选择器插件使用方法详解
2018/12/28 Javascript
vue引入静态js文件的方法
2020/06/20 Javascript
python实现的jpg格式图片修复代码
2015/04/21 Python
Python处理XML格式数据的方法详解
2017/03/21 Python
python SSH模块登录,远程机执行shell命令实例解析
2018/01/12 Python
python抓取需要扫微信登陆页面
2019/04/29 Python
django实现后台显示媒体文件
2020/04/07 Python
PyCharm设置Ipython交互环境和宏快捷键进行数据分析图文详解
2020/04/23 Python
python代码如何注释
2020/06/01 Python
澳大利亚正品化妆品之家:Cosmetic Capital
2017/07/03 全球购物
安全事故检讨书
2014/01/18 职场文书
成绩单家长评语大全
2014/04/16 职场文书
临床专业自荐信
2014/06/22 职场文书
火锅店的活动方案
2014/08/15 职场文书
校长个人总结
2015/03/03 职场文书
2015清明节祭奠英烈寄语大全
2015/03/04 职场文书
2015年大学学生会工作总结
2015/05/13 职场文书
2015年计算机教师工作总结
2015/07/22 职场文书
python如何读取.mtx文件
2021/04/22 Python
Django项目如何正确配置日志(logging)
2021/04/29 Python
pandas中DataFrame重置索引的几种方法
2021/05/24 Python