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 相关文章推荐
Javascript - HTML的request类
Jul 15 Javascript
JavaScript结合AJAX_stream实现流式显示
Jan 08 Javascript
JavaScript学习笔记之检测客户端类型是(引擎、浏览器、平台、操作系统、移动设备)
Dec 03 Javascript
jQuery对checkbox 复选框的全选全不选反选的操作
Aug 09 Javascript
JS获取当前使用的浏览器名字以及版本号实现方法
Aug 19 Javascript
vue项目上传Github预览的实现示例
Nov 06 Javascript
js实现移动端轮播图
Dec 21 Javascript
vue axios封装及API统一管理的方法
Apr 18 Javascript
vue+webpack 更换主题N种方案优劣分析
Oct 28 Javascript
js实现内置计时器
Dec 16 Javascript
基于JQuery和DWR实现异步数据传递
Oct 16 jQuery
vue3为什么要用proxy替代defineProperty
Oct 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注入点构造代码
2008/06/14 PHP
PHP过滤黑名单关键字的方法
2014/12/01 PHP
thinkphp实现图片上传功能
2016/01/13 PHP
Laravel学习基础之migrate的使用教程
2017/10/11 PHP
文本框获得焦点和失去焦点的判断代码
2012/03/18 Javascript
javascript 数组操作详解
2015/01/29 Javascript
轻松掌握jQuery中wrap()与unwrap()函数的用法
2016/05/24 Javascript
浅谈jQuery 中的事件冒泡和阻止默认行为
2016/05/28 Javascript
VUE 更好的 ajax 上传处理 axios.js实现代码
2017/05/10 Javascript
angular1配合gulp和bower的使用教程
2018/01/19 Javascript
5分钟学会Vue动画效果(小结)
2018/07/21 Javascript
layer.open 按钮的点击事件关闭方法
2018/08/17 Javascript
解决vue-cli webpack打包后加载资源的路径问题
2018/09/25 Javascript
vue+element实现表单校验功能
2019/05/20 Javascript
Layui实现主窗口和Iframe层参数传递
2019/11/14 Javascript
vue中el-input绑定键盘按键(按键修饰符)
2020/07/22 Javascript
[02:36]DOTA2英雄基础教程 一击致命幻影刺客
2013/12/06 DOTA
python中from module import * 的一个坑
2014/07/20 Python
浅谈python对象数据的读写权限
2016/09/12 Python
Python实现分段线性插值
2018/12/17 Python
Python实现正则表达式匹配任意的邮箱方法
2018/12/20 Python
python基于json文件实现的gearman任务自动重启代码实例
2019/08/13 Python
django 模型字段设置默认值代码
2020/07/15 Python
乌克兰数字设备、配件和智能技术的连锁商店:KTC
2020/08/18 全球购物
英国豪华家具和经典家居饰品购物网站:OKA
2020/06/05 全球购物
初二政治教学反思
2014/01/12 职场文书
2014年三八妇女节活动方案
2014/02/28 职场文书
英文自荐信常用句子
2014/03/26 职场文书
初一学生评语大全
2014/04/24 职场文书
体育专业大学生职业生涯规划范文:打造自己的运动帝国
2014/09/12 职场文书
学习十八大标语
2014/10/09 职场文书
死亡证明书样本说明
2014/10/18 职场文书
体育教师个人总结
2015/02/09 职场文书
如何计划开一家便利店?
2019/07/31 职场文书
图解上海144收音机
2021/04/22 无线电
Anaconda安装pytorch和paddle的方法步骤
2022/04/03 Python