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 相关文章推荐
把textarea中字符串里含有的回车换行替换成<br>的javascript代码
Apr 20 Javascript
jQuery Pagination Ajax分页插件(分页切换时无刷新与延迟)中文翻译版
Jan 11 Javascript
jQuery实现在textarea指定位置插入字符或表情的方法
Mar 11 Javascript
JS 事件绑定、事件监听、事件委托详细介绍
Sep 28 Javascript
jQuery Validate表单验证插件的基本使用方法及功能拓展
Jan 04 Javascript
基于HTML5+JS实现本地图片裁剪并上传功能
Mar 24 Javascript
理解 javascript 中的函数表达式与函数声明
Jul 07 Javascript
jQuery条件分页 代替离线查询(附代码)
Aug 17 jQuery
angular 实时监听input框value值的变化触发函数方法
Aug 31 Javascript
js实现简单的无缝轮播效果
Sep 05 Javascript
vuex刷新后数据丢失的解决方法
Oct 18 Javascript
React + Threejs + Swiper 实现全景图效果的完整代码
Jun 28 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写的采集程序
2007/03/16 PHP
ExtJS与PHP、MySQL实现存储的方法
2010/04/02 PHP
一个PHP二维数组排序的函数分享
2014/01/17 PHP
php不使用插件导出excel的简单方法
2014/03/04 PHP
PHP页面实现定时跳转的方法
2014/10/31 PHP
JS检测图片大小的实例
2013/08/21 Javascript
addEventListener()第三个参数useCapture (Boolean)详细解析
2013/11/07 Javascript
JS去除字符串两端空格的简单实例
2013/12/27 Javascript
jQuery插件Tooltipster实现漂亮的工具提示
2015/04/12 Javascript
jquery插件格式实例分析
2016/06/16 Javascript
原生js图片轮播效果实现代码
2016/10/19 Javascript
Vue.js路由组件vue-router使用方法详解
2016/12/02 Javascript
BootStrap CSS全局样式和表格样式源码解析
2017/01/20 Javascript
vue元素实现动画过渡效果
2017/07/01 Javascript
利用jquery如何从json中读取数据追加到html中
2017/12/01 jQuery
Vue 报错TypeError: this.$set is not a function 的解决方法
2018/12/17 Javascript
vue中各种通信传值方式总结
2019/02/14 Javascript
详解VScode编辑器vue环境搭建所遇问题解决方案
2019/04/26 Javascript
浅谈Vue中render中的h箭头函数
2019/11/07 Javascript
JavaScript前端实现压缩图片功能
2020/03/06 Javascript
python中正则表达式的使用详解
2014/10/17 Python
Python实现删除当前目录下除当前脚本以外的文件和文件夹实例
2015/07/27 Python
在PYQT5中QscrollArea(滚动条)的使用方法
2019/06/14 Python
python图形用户接口实例详解
2019/12/16 Python
jenkins+python自动化测试持续集成教程
2020/05/12 Python
HealthElement海外旗舰店:新西兰大卖场
2018/02/23 全球购物
美国家庭鞋店:Shoe Sensation
2019/09/27 全球购物
英国著名的美容护肤和护发产品购物网站:Lookfantastic
2020/11/23 全球购物
《谁的本领大》教后反思
2014/04/25 职场文书
公务员诚信承诺书
2014/05/26 职场文书
2014年银行信贷员工作总结
2014/12/08 职场文书
史上最牛的辞职信
2015/02/28 职场文书
正规欠条模板
2015/07/03 职场文书
创业项目(超低成本创业项目)
2019/08/16 职场文书
Python+Selenium实现读取网易邮箱验证码
2022/03/13 Python
Docker下安装Oracle19c
2022/04/13 Servers