浅析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 相关文章推荐
yepnope.js 异步加载资源文件
Sep 08 Javascript
JavaScript基本编码模式小结
May 23 Javascript
打印json对象的内容及JSON.stringify函数应用
Mar 29 Javascript
javascript动态添加、修改、删除对象的属性与方法详解
Jan 27 Javascript
JavaScript前端开发之实现二进制读写操作
Nov 04 Javascript
vue组件中点击按钮后修改输入框的状态实例代码
Apr 14 Javascript
响应式框架Bootstrap栅格系统的实例
Dec 19 Javascript
webpack实用小功能介绍
Jan 02 Javascript
Vue.js 利用v-for中的index值实现隔行变色
Aug 01 Javascript
基于layui数据表格以及传数据的方式
Aug 19 Javascript
详解vue为什么要求组件模板只能有一个根元素
Jul 22 Javascript
vue实现中部导航栏布局功能
Jul 30 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中Collection 类的设计
2013/06/21 PHP
PHP获取和操作配置文件php.ini的几个函数介绍
2013/06/24 PHP
PHP文件上传主要代码讲解
2013/09/30 PHP
PHP中mysqli_affected_rows作用行数返回值分析
2014/12/26 PHP
php从字符串创建函数的方法
2015/03/16 PHP
php的debug相关函数用法示例
2016/07/11 PHP
关于js中window.location.href,location.href,parent.location.href,top.location.href的用法与区别
2010/10/18 Javascript
谈谈关于JavaScript 中的 MVC 模式
2013/04/11 Javascript
javascript框架设计读书笔记之模块加载系统
2014/12/02 Javascript
Javascript实现div层渐隐效果的方法
2015/05/30 Javascript
jQuery 特性操作详解及实例代码
2016/09/29 Javascript
AngularJS表格样式简单设置方法示例
2017/03/03 Javascript
angularjs过滤器--filter与ng-repeat配合有奇效
2017/04/20 Javascript
强大的JavaScript响应式图表Chartist.js的使用
2017/09/13 Javascript
微信小程序简单实现form表单获取输入数据功能示例
2017/11/30 Javascript
Vue+webpack项目基础配置教程
2018/02/12 Javascript
如何以Angular的姿势打开Font-Awesome详解
2018/04/22 Javascript
jQuery使用动画队列自定义动画操作示例
2018/06/16 jQuery
vue draggable resizable gorkys与v-chart使用与总结
2019/09/05 Javascript
vue路由切换时取消之前的所有请求操作
2020/09/01 Javascript
python编写弹球游戏的实现代码
2018/03/12 Python
python 定义n个变量方法 (变量声明自动化)
2018/11/10 Python
在python里面运用多继承方法详解
2019/07/01 Python
python 实现让字典的value 成为列表
2019/12/16 Python
Python模拟伯努利试验和二项分布代码实例
2020/05/27 Python
python报错: 'list' object has no attribute 'shape'的解决
2020/07/15 Python
任意存:BOXFUL
2018/05/21 全球购物
时尚设计师手表:The Watch Cabin
2018/10/06 全球购物
维氏瑞士军刀英国网站:Victorinox英国
2019/07/04 全球购物
什么是设计模式
2012/06/17 面试题
研究生简历自我评价范文
2014/09/13 职场文书
成事在人观后感
2015/06/16 职场文书
2016大学生社会实践心得体会范文
2016/01/14 职场文书
幼儿园教学反思范文
2016/03/02 职场文书
浅谈MySQL表空间回收的正确姿势
2021/10/05 MySQL
动画「半妖的夜叉姬」新BD特典图公开
2022/03/22 日漫