浅析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之ESC(第二类混淆)
May 06 Javascript
User Scripts: Video Download by User Scripts
May 14 Javascript
基于jquery的模态div层弹出效果
Aug 21 Javascript
始终在屏幕中间显示Div的代码(css+js)
Mar 10 Javascript
弹出窗口并且此窗口带有半透明的遮罩层效果
Mar 13 Javascript
VueJs路由跳转——vue-router的使用详解
Jan 10 Javascript
jQuery简易时光轴实现方法示例
Mar 13 Javascript
JavaScript插件Tab选项卡效果
Nov 14 Javascript
原生JS实现ajax与ajax的跨域请求实例
Dec 01 Javascript
利用原生的JavaScript实现简单拼图游戏
Nov 18 Javascript
OpenLayer3自定义测量控件MeasureTool
Sep 28 Javascript
ant design vue导航菜单与路由配置操作
Oct 28 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 获取页面中指定内容的实现类
2014/01/23 PHP
php使用ZipArchive函数实现文件的压缩与解压缩
2015/10/27 PHP
PHP加密解密实例分析
2015/12/25 PHP
php实现购物车功能(以大苹果购物网为例)
2017/03/09 PHP
PHP获取数据库表中的数据插入新的表再原删除数据方法
2018/10/12 PHP
PHP pthreads v3在centos7平台下的安装与配置操作方法
2020/02/21 PHP
js jquery做的图片连续滚动代码
2008/01/06 Javascript
javascript复制对象使用说明
2011/06/28 Javascript
JavaScript中:表达式和语句的区别[译]
2012/09/17 Javascript
javascript打印大全(打印页面设置/打印预览代码)
2013/03/29 Javascript
原生js实现半透明遮罩层效果具体代码
2013/06/06 Javascript
JavaScript实现Base64编码转换
2016/04/23 Javascript
JS iFrame加载慢怎么解决
2016/05/13 Javascript
学习vue.js表单控件绑定操作
2016/12/05 Javascript
基于vue.js轮播组件vue-awesome-swiper实现轮播图
2017/03/17 Javascript
微信小程序实现全国机场索引列表
2018/01/31 Javascript
Vue Echarts实现可视化世界地图代码实例
2019/05/07 Javascript
如何在JavaScript中谨慎使用代码注释
2019/06/21 Javascript
详解nvm管理多版本node踩坑
2019/07/26 Javascript
JavaScript 作用域实例分析
2019/10/02 Javascript
解决antd Form 表单校验方法无响应的问题
2020/10/27 Javascript
python中的hashlib和base64加密模块使用实例
2014/09/02 Python
使用Pyrex来扩展和加速Python程序的教程
2015/04/13 Python
对python数据切割归并算法的实例讲解
2018/12/12 Python
python中的colorlog库使用详解
2019/07/05 Python
H5调用相机拍照并压缩图片的实例代码
2017/07/20 HTML / CSS
One.com挪威:北欧成长最快的网络托管公司
2016/11/19 全球购物
马来西亚时装购物网站:ZALORA马来西亚
2017/03/14 全球购物
速比涛英国官网:Speedo英国
2019/07/15 全球购物
大学生毕业自我鉴定范文
2013/09/19 职场文书
自荐书范文范例
2014/02/13 职场文书
教师校本培训方案
2014/02/26 职场文书
高一课前三分钟演讲稿
2014/09/13 职场文书
七一活动主持词
2015/06/29 职场文书
经典人生语录分享:不畏将来,不念过去,笑对当下
2019/12/12 职场文书
Pytorch中Softmax与LogSigmoid的对比分析
2021/06/05 Python