浅析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 Select标记中options操作方法集合
Oct 22 Javascript
jquery 与NVelocity 产生冲突的解决方法
Jun 13 Javascript
js判断鼠标左、中、右键哪个被点击的方法
Jan 27 Javascript
javascript中hasOwnProperty() 方法使用指南
Mar 09 Javascript
浅谈jQuery中setInterval()方法
Jul 07 Javascript
谈谈第三方App接入微信登录 解读
Dec 27 Javascript
浅谈对Angular中的生命周期钩子的理解
Jul 31 Javascript
JavaScript实现短信倒计时60s
Oct 09 Javascript
vue将时间戳转换成自定义时间格式的方法
Mar 02 Javascript
基于vue-simplemde实现图片拖拽、粘贴功能
Apr 12 Javascript
解决微信小程序中的滚动穿透问题
Sep 16 Javascript
vue轮播组件实现$children和$parent 附带好用的gif录制工具
Sep 26 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
php4的session功能评述(三)
2006/10/09 PHP
第十四节--命名空间
2006/11/16 PHP
php 模拟POST|GET操作实现代码
2010/07/20 PHP
详解PHP错误日志的获取方法
2015/07/20 PHP
Thinkphp3.2.3整合phpqrcode生成带logo的二维码
2016/07/21 PHP
php foreach如何跳出两层循环(详解)
2016/11/05 PHP
ThinkPHP整合datatables实现服务端分页的示例代码
2018/02/10 PHP
PHP函数按引用传递参数及函数可选参数用法示例
2018/06/04 PHP
(仅IE下有效)关于checkbox 三态
2007/05/12 Javascript
jquery.boxy插件的iframe扩展代码
2010/07/02 Javascript
jQuery UI Datepicker length为空或不是对象错误的解决方法
2010/12/19 Javascript
Bootstrap实现基于carousel.js框架的轮播图效果
2017/05/02 Javascript
纯JS实现只能输入数字的简单代码
2017/06/21 Javascript
浅谈node的事件机制
2017/10/09 Javascript
Vuejs在v-for中,利用index来对第一项添加class的方法
2018/03/03 Javascript
vue中mint-ui的使用方法
2018/04/04 Javascript
Vue.directive使用注意(小结)
2018/08/31 Javascript
JS中实现浅拷贝和深拷贝的代码详解
2019/06/05 Javascript
JS简单表单验证功能完整示例
2020/01/26 Javascript
webpack 如何同时输出压缩和未压缩的文件的实现步骤
2020/06/05 Javascript
[01:44]《为梦想出发》—联想杯DOTA2完美世界全国高校联赛
2015/09/30 DOTA
Python的Django框架中的表单处理示例
2015/07/17 Python
Python+pandas计算数据相关系数的实例
2018/07/03 Python
python中partial()基础用法说明
2018/12/30 Python
解决python tkinter界面卡死的问题
2019/07/17 Python
使用Pandas对数据进行筛选和排序的实现
2019/07/29 Python
python单向链表的基本实现与使用方法【定义、遍历、添加、删除、查找等】
2019/10/24 Python
MoviePy简介及Python视频剪辑自动化
2020/12/18 Python
详解CSS3 filter:drop-shadow滤镜与box-shadow区别与应用
2020/08/24 HTML / CSS
strlen的几种不同实现方法
2013/05/31 面试题
机关保密承诺书
2014/06/03 职场文书
学校学雷锋活动总结
2014/06/26 职场文书
2015年消费者权益日活动总结
2015/02/09 职场文书
食品质检员岗位职责
2015/04/08 职场文书
党员学习中国梦心得体会
2016/01/05 职场文书
python for循环赋值问题
2021/06/03 Python