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 相关文章推荐
关于__defineGetter__ 和__defineSetter__的说明
May 12 Javascript
Javascript继承(上)——对象构建介绍
Nov 08 Javascript
Jquery遍历checkbox获取选中项value值的方法
Feb 13 Javascript
JavaScript分秒倒计时器实现方法
Feb 02 Javascript
使用jquery制作弹出框效果
Apr 03 Javascript
JavaScript的Vue.js库入门学习教程
May 23 Javascript
ES6中let 和 const 的新特性
Sep 03 Javascript
vue3.0 CLI - 1 - npm 安装与初始化的入门教程
Sep 14 Javascript
vue2使用keep-alive缓存多层列表页的方法
Sep 21 Javascript
详解vue中使用protobuf踩坑记
May 07 Javascript
vue如何限制只能输入正负数及小数
Jul 04 Javascript
javascript跳转与返回和刷新页面的实例代码
Nov 20 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通过淘宝API查询IP地址归属等信息
2015/12/25 PHP
PHP实现数组array转换成xml的方法
2016/07/19 PHP
php实现的统计字数函数定义与使用示例
2017/07/26 PHP
在JavaScript中实现命名空间
2006/11/23 Javascript
javascript 一个自定义长度的文本自动换行的函数
2007/08/19 Javascript
jQuery图片滚动图片的效果(另类实现)
2013/06/02 Javascript
js实现图片上传并正常显示
2015/12/19 Javascript
JavaScript 弹出子窗体并返回结果到父窗体的实现代码
2016/05/28 Javascript
javascript实现的全国省市县无刷新多级关联菜单效果代码
2016/08/01 Javascript
AngularJS基础 ng-src 指令简单示例
2016/08/03 Javascript
javascript的document中的动态添加标签实现方法
2016/10/24 Javascript
JQuery页面随滚动条动态加载效果的简单实现(推荐)
2017/02/08 Javascript
微信小程序6位或多位验证码密码输入框功能的实现代码
2018/05/29 Javascript
Vue+Element实现表格编辑、删除、以及新增行的最优方法
2019/05/28 Javascript
Javascript模块化机制实现原理详解
2020/04/02 Javascript
一篇文章带你使用Typescript封装一个Vue组件(简单易懂)
2020/06/05 Javascript
JavaScript实现点击自制菜单效果
2021/02/02 Javascript
python 3.5实现检测路由器流量并写入txt的方法实例
2017/12/17 Python
python删除服务器文件代码示例
2018/02/09 Python
Django框架的使用教程路由请求响应的方法
2018/07/03 Python
解决在Python编辑器pycharm中程序run正常debug错误的问题
2019/01/17 Python
python 梯度法求解函数极值的实例
2019/07/10 Python
Django用户认证系统 User对象解析
2019/08/02 Python
python判断单向链表是否包括环,若包含则计算环入口的节点实例分析
2019/10/23 Python
python默认参数调用方法解析
2020/02/09 Python
使用 Python ssh 远程登陆服务器的最佳方案
2020/03/06 Python
Python如何进行时间处理
2020/08/06 Python
深入解读CSS3中transform变换模型的渲染
2016/05/27 HTML / CSS
大学生求职中的自我评价
2013/10/01 职场文书
十佳班主任事迹材料
2014/01/18 职场文书
就业协议书的作用
2014/04/11 职场文书
大学班级学风建设方案
2014/05/01 职场文书
生产工厂门卫岗位职责
2014/09/26 职场文书
2015年小学财务工作总结
2015/07/20 职场文书
2019请假条的基本格式及范文!
2019/07/05 职场文书
详解apache编译安装httpd-2.4.54及三种风格的init程序特点和区别
2022/07/15 Servers