浅析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 相关文章推荐
浅析jQuery对select操作小结(遍历option,操作option)
Jul 04 Javascript
jQuery 中国省市两级联动选择附图
May 14 Javascript
js图片闪动特效可以控制间隔时间如几分钟闪动一下
Aug 12 Javascript
深入理解angularjs过滤器
May 25 Javascript
JS正则截取两个字符串之间及字符串前后内容的方法
Jan 06 Javascript
JavaScript中在光标处插入添加文本标签节点的详细方法
Mar 22 Javascript
浅谈node中的exports与module.exports的关系
Aug 01 Javascript
vue webpack打包优化操作技巧
Feb 22 Javascript
axios拦截设置和错误处理方法
Mar 05 Javascript
解决vue跨域axios异步通信问题
Apr 17 Javascript
使用Vue.js 和Chart.js制作绚丽多彩的图表
Jun 15 Javascript
使用VScode 插件debugger for chrome 调试react源码的方法
Sep 13 Javascript
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
大师制作的中短波矿石收音机
2020/04/02 无线电
深入解析php模板技术原理【一】
2008/01/10 PHP
PHP常用函数小技巧
2008/09/11 PHP
探讨:如何通过stats命令分析Memcached的内部状态
2013/06/14 PHP
php堆排序实现原理与应用方法
2015/01/03 PHP
php打包压缩文件之ZipArchive方法用法分析
2016/04/30 PHP
ThinkPHP的SAE开发相关注意事项详解
2016/10/09 PHP
tp5(thinkPHP5框架)使用DB实现批量删除功能示例
2019/05/28 PHP
js获取html页面节点方法(递归方式)
2013/12/13 Javascript
JsRender for object语法简介
2014/10/31 Javascript
javascript 回调函数详解
2014/11/11 Javascript
js图片上传前预览功能(兼容所有浏览器)
2016/08/24 Javascript
DWR3 访问WEB元素的两种方法实例详解
2017/01/03 Javascript
Angular中的interceptors拦截器
2017/06/25 Javascript
JS+HTML+CSS实现轮播效果
2017/11/28 Javascript
页面点击小红心js实现代码
2018/05/26 Javascript
vue修改对象的属性值后页面不重新渲染的实例
2018/08/09 Javascript
如何用RxJS实现Redux Form
2018/12/29 Javascript
Vue实现简易计算器
2020/02/25 Javascript
js对象属性名驼峰式转下划线的实例代码
2020/09/17 Javascript
js实现移动端图片滑块验证功能
2020/09/29 Javascript
[41:54]2018DOTA2亚洲邀请赛 4.1 小组赛A组加赛 TNC vs Liquid
2018/04/03 DOTA
Python中json格式数据的编码与解码方法详解
2016/07/01 Python
python中将\\uxxxx转换为Unicode字符串的方法
2018/09/06 Python
推荐10款最受Python开发者欢迎的Python IDE
2018/09/16 Python
Django使用Channels实现WebSocket的方法
2019/07/28 Python
python获取Pandas列名的几种方法
2019/08/07 Python
深入理解Python 多线程
2020/06/16 Python
python sleep和wait对比总结
2021/02/03 Python
CSS3 clip-path 用法介绍详解
2018/03/01 HTML / CSS
以实惠的价格轻松租车,免费取消:Easyrentcars
2019/07/16 全球购物
自动化专业职业生涯规划书范文
2014/01/16 职场文书
物流管理专业毕业生求职信
2014/03/23 职场文书
2015年学校教务处工作总结
2015/05/11 职场文书
百万英镑观后感
2015/06/09 职场文书
拿破仑传读书笔记
2015/07/01 职场文书