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验证(图片/文件的扩展名)
Apr 25 Javascript
js unicode 编码解析关于数据转换为中文的两种方法
Apr 21 Javascript
js实现鼠标滚轮控制图片缩放效果的方法
Feb 20 Javascript
Vue表单实例代码
Sep 05 Javascript
微信小程序 教程之wxapp视图容器 scroll-view
Oct 19 Javascript
Bootstrap模态框禁用空白处点击关闭
Oct 20 Javascript
Bootstrap中glyphicons-halflings-regular.woff字体报404错notfound的解决方法
Jan 19 Javascript
浅谈Vuejs Prop基本用法
Aug 17 Javascript
webpack构建的详细流程探底
Jan 08 Javascript
浅谈Vue SSR中的Bundle的具有使用
Nov 21 Javascript
vue.js this.$router.push获取不到params参数问题
Mar 03 Javascript
小程序表单认证布局及验证详解
Jun 19 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类
2006/10/09 PHP
解析PHP的session过期设置
2013/06/29 PHP
PHP中error_log()函数的使用方法
2015/01/20 PHP
php使用wordwrap格式化文本段落的方法
2015/03/17 PHP
PHP中include()与require()的区别说明
2017/02/14 PHP
yii gridview实现时间段筛选功能
2017/08/15 PHP
php生成word并下载代码实例
2019/03/15 PHP
新增加的内容是如何将div的scrollbar自动移动最下面
2014/01/02 Javascript
jQuery实现的导航条切换可显示隐藏
2014/10/22 Javascript
原生js结合html5制作简易的双色子游戏
2015/03/30 Javascript
jquery模拟alert的弹窗插件
2015/07/31 Javascript
JavaScript实现将文本框的值插入指定位置的方法
2015/08/13 Javascript
基于jQuery实现简单的折叠菜单效果
2015/11/23 Javascript
js中获取键盘事件的简单实现方法
2016/10/10 Javascript
JavaScript设计模式之策略模式详解
2017/06/09 Javascript
微信小程序商品到详情的实现
2017/06/27 Javascript
浅谈React Native 中组件的生命周期
2017/09/08 Javascript
Vue2.0 http请求以及loading展示实例
2018/03/06 Javascript
bing Map 在vue项目中的使用详解
2018/04/09 Javascript
jQuery实现的简单手风琴效果示例
2018/08/29 jQuery
详解easyui 切换主题皮肤
2019/04/04 Javascript
vue 对axios get pust put delete封装的实例代码
2020/01/05 Javascript
快速解决Vue、element-ui的resetFields()方法重置表单无效的问题
2020/08/12 Javascript
python字符串连接方式汇总
2014/08/21 Python
Python爬虫实现网页信息抓取功能示例【URL与正则模块】
2017/05/18 Python
Pandas读取并修改excel的示例代码
2019/02/17 Python
在Python中利用pickle保存变量的实例
2019/12/30 Python
python GUI库图形界面开发之PyQt5单选按钮控件QRadioButton详细使用方法与实例
2020/02/28 Python
解决jupyter notebook import error但是命令提示符import正常的问题
2020/04/15 Python
Python tkinter实现简单加法计算器代码实例
2020/05/13 Python
前台领班岗位职责
2013/12/04 职场文书
喷漆工的岗位职责
2014/03/17 职场文书
小学教师寄语大全
2014/04/03 职场文书
市级文明单位申报材料
2014/05/07 职场文书
审计班子对照检查材料
2014/08/27 职场文书
教师学期末个人总结
2015/02/13 职场文书