浅析jquery ajax异步调用方法中不能给全局变量赋值的原因及解决方法


Posted in Javascript onJanuary 10, 2014

在调用一个jquery的ajax方法时我们有时会需要该方法返回一个值或者给某个全局变量赋值,可是我们发现程序执行完后并没有获取到我们想要的值,这时很有可能是因为你用的是ajax的异步调用async:true(默认情况),如:

function ManageCommentText(text) {
var result = text;
$.ajax({
data: "get",
url: "GetComments.aspx",
data: "type=getText&commentText=" + text,
cache: false,
async: false,
success: function (data) {
result = data;
}
})
return result;

以上方法是ajax的同步调用,只有在获取到了data值并赋值给result以后才会返回result完成该方法的调用。若设为async:true,
则会未等到获取data值就已经返回了result。

另一个解决办法就是将你的代码直接写到success方法里。(根据你的业务并不是所有的都可以直接写到success里的)。

注意:如果设定为 async: false,就失去 ajax异步的优点了哦。

Javascript 相关文章推荐
JavaScript中实现块作用域的方法
Apr 01 Javascript
基于jquery的鼠标拖动效果代码
May 30 Javascript
简单常用的幻灯片播放实现代码
Sep 25 Javascript
JavaScript的原型继承详解
Feb 15 Javascript
使用jquery.form.js实现图片上传的方法
May 05 Javascript
js获取上传文件的绝对路径实现方法
Aug 02 Javascript
BootstrapValidator不触发校验的实现代码
Sep 28 Javascript
jquery实现瀑布流效果 jquery下拉加载新数据
Dec 12 Javascript
js读取json文件片段中的数据实例
Mar 09 Javascript
layui checkbox默认选中,获取选中值,清空所有选中项的例子
Sep 02 Javascript
react结合bootstrap实现评论功能
May 30 Javascript
Vue项目利用axios请求接口下载excel
Nov 17 Vue.js
JQuery中使用Ajax赋值给全局变量异常的解决方法
Jan 10 #Javascript
jquery和javascript中如何将一元素的内容赋给另一元素
Jan 09 #Javascript
引入JS文件IE6报语法错误或缺少对象问题的解决方法
Jan 09 #Javascript
JQuery实现鼠标移动到图片上显示边框效果
Jan 09 #Javascript
图片翻转效果具体实现代码
Jan 09 #Javascript
js获取光标位置和设置文本框光标位置示例代码
Jan 09 #Javascript
扩展IE中一些不兼容的方法如contains、startWith等等
Jan 09 #Javascript
You might like
微信支付的开发流程详解
2016/09/13 PHP
PHP从二维数组得到N层分类树的实现代码
2016/10/11 PHP
详解PHP防止盗链防止迅雷下载的方法
2017/04/26 PHP
使用ucenter实现多站点同步登录的讲解
2019/03/21 PHP
Laravel 修改验证异常的响应格式实例代码详解
2020/05/25 PHP
jQuery 操作下拉列表框实现代码
2010/02/22 Javascript
第一个JavaScript入门基础 document.write输出
2010/02/22 Javascript
Firebug入门指南(Firefox浏览器)
2010/08/21 Javascript
探讨js中的双感叹号判断
2013/11/11 Javascript
JS+CSS实现可拖动的弹出提示框
2015/02/16 Javascript
jQuery+CSS实现滑动的标签分栏切换效果
2015/12/17 Javascript
RequireJS多页面应用实例分析
2016/06/29 Javascript
详解vue 中使用 AJAX获取数据的方法
2017/01/18 Javascript
微信小程序录音与播放录音功能
2017/12/25 Javascript
微信小程序实现分享朋友圈的图片功能示例
2019/01/18 Javascript
jQuery 筛选器简单操作示例
2019/10/02 jQuery
Servlet返回的数据js解析2种方法
2019/12/12 Javascript
基于leaflet.js实现修改地图主题样式的流程分析
2020/05/15 Javascript
如何正确解决VuePress本地访问出现资源报错404的问题
2020/12/03 Vue.js
[00:50]深扒TI7聊天轮盘语音出处6
2017/05/11 DOTA
Python实现PS滤镜的万花筒效果示例
2018/01/23 Python
python获取中文字符串长度的方法
2018/11/14 Python
pandas取出重复数据的方法
2019/07/04 Python
如何用Python 实现全连接神经网络(Multi-layer Perceptron)
2020/10/15 Python
浅谈CSS3特性查询(Feature Query: @supports)功能简介
2017/07/31 HTML / CSS
html5 worker 实例(二) 图片变换效果
2013/06/24 HTML / CSS
用HTML5的canvas实现一个炫酷时钟效果
2016/05/20 HTML / CSS
爱奇艺VIP会员:大剧抢先看
2018/07/11 全球购物
数控技术与应用毕业生自荐信
2013/09/24 职场文书
九年级化学教学反思
2014/01/28 职场文书
公司放假通知怎么写
2015/04/15 职场文书
2016高考感言
2015/08/01 职场文书
2015年文秘个人工作总结
2015/10/14 职场文书
员工保密协议范本,您一定得收藏!很有用!
2019/08/08 职场文书
深度学习小工程练习之垃圾分类详解
2021/04/14 Python
正确使用MySQL update语句
2021/05/26 MySQL