一个全局的变量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; }
推荐阅读
ajax上传时参数提交不更新等相关问题
先前,我从网上下载了一个jQuery的Ajax上传插件,网页的左侧是上传分类,想要实现的一个功能是如此这样的:我本来是打算在服务端根据上传分类建立不同的文件夹来保存文件的,因此这个就需要传一个上传分类参数给后>>>详细阅读
本文标题:Ajax执行顺序流程及回调问题分析
地址:http://www.17bianji.com/kaifa2/JS/22845.html
1/2 1