浅析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的文字自动截取(提供源代码)
Aug 09 Javascript
JS判断文本框内容改变事件的简单实例
Mar 07 Javascript
基于zepto.js实现仿手机QQ空间的大图查看组件ImageView.js详解
Mar 05 Javascript
详解JavaScript中的forEach()方法的使用
Jun 08 Javascript
jquery Easyui快速开发总结
Aug 20 Javascript
Jquery跨浏览器文本复制插件Zero Clipboard的使用方法
Feb 28 Javascript
基于JavaScript实现右键菜单和拖拽功能
Nov 28 Javascript
JAVA中截取字符串substring用法详解
Apr 14 Javascript
vue2.0实现导航菜单切换效果
May 08 Javascript
如何在js代码中消灭for循环实例详解
Jul 29 Javascript
微信小程序与webview交互实现支付功能
Jun 07 Javascript
微信小程序上传帖子的实例代码(含有文字图片的微信验证)
Jul 11 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
PHP 和 MySQL 基础教程(一)
2006/10/09 PHP
PHP初学者最感迷茫的问题小结
2010/03/27 PHP
php 实现进制转换(二进制、八进制、十六进制)互相转换实现代码
2010/10/22 PHP
Yii框架where查询用法实例分析
2019/10/22 PHP
jquery select操作的日期联动实现代码
2009/12/06 Javascript
Jquery优化效率 提升性能解决方案
2010/09/06 Javascript
ANGULARJS中使用JQUERY分页控件
2015/09/16 Javascript
Java遍历集合方法分析(实现原理、算法性能、适用场合)
2016/04/25 Javascript
vue  directive定义全局和局部指令及指令简写
2018/11/20 Javascript
实例分析Array.from(arr)与[...arr]到底有何不同
2019/04/09 Javascript
微信小程序前端自定义分享的实现方法
2019/06/13 Javascript
15 分钟掌握vue-next响应式原理
2019/10/13 Javascript
浅谈vue异步数据影响页面渲染
2019/10/29 Javascript
nuxt.js添加环境变量,区分项目打包环境操作
2020/11/06 Javascript
[03:13]DOTA2-DPC中国联赛1月25日Recap集锦
2021/03/11 DOTA
简介Python设计模式中的代理模式与模板方法模式编程
2016/02/02 Python
解读python logging模块的使用方法
2018/04/17 Python
Python3多线程操作简单示例
2018/05/22 Python
解决Python3 被PHP程序调用执行返回乱码的问题
2019/02/16 Python
python实现可逆简单的加密算法
2019/03/22 Python
python pandas写入excel文件的方法示例
2019/06/25 Python
详解python中*号的用法
2019/10/21 Python
Python字节单位转换实例
2019/12/05 Python
python 安装impala包步骤
2020/03/28 Python
python 贪心算法的实现
2020/09/18 Python
如何基于Python爬虫爬取美团酒店信息
2020/11/03 Python
Css3新特性应用之形状总结
2016/12/08 HTML / CSS
JD Sports瑞典:英国领先的运动时尚商店
2018/01/28 全球购物
女性时尚网购:Chic Me
2019/07/30 全球购物
Linux如何修改文件和文件夹的权限
2013/09/05 面试题
计算机应用专业毕业生求职信
2013/10/24 职场文书
小学生元旦广播稿
2014/02/21 职场文书
护士个人自我鉴定
2014/03/24 职场文书
2014大学生中国梦主题教育学习思想汇报
2014/09/10 职场文书
银行贷款委托书范本
2014/10/11 职场文书
2015年科学教研组工作总结
2015/07/22 职场文书