浅析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 定义初始化数组函数
Sep 07 Javascript
JQUERY1.6 使用方法四 检测浏览器
Nov 23 Javascript
jQuery 数据缓存模块进化史详细介绍
Nov 19 Javascript
Javascript中产生固定结果的函数优化技巧
Jan 16 Javascript
jQuery实现的输入框选择时间插件用法实例
Feb 28 Javascript
JavaScript对象参数的引用传递
Jan 14 Javascript
bootstrap为水平排列的表单和内联表单设置可选的图标
Feb 15 Javascript
最全的JavaScript开发工具列表 总有一款适合你
Jun 29 Javascript
Angular实现的敏感文字自动过滤与提示功能示例
Dec 29 Javascript
js 将canvas生成图片保存,或直接保存一张图片的实现方法
Jan 02 Javascript
JavaScript(js)处理的HTML事件、键盘事件、鼠标事件简单示例
Nov 19 Javascript
JavaScript 自定义html元素鼠标右键菜单功能
Dec 02 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数据库代码
2009/03/10 PHP
解析smarty模板中类似for的功能实现
2013/06/18 PHP
php实现的mongodb操作类实例
2015/04/03 PHP
php+MySql实现登录系统与输出浏览者信息功能
2016/07/01 PHP
复制本贴标题和地址的js代码
2008/07/01 Javascript
jQuery Div中加载其他页面的实现代码
2009/02/27 Javascript
Whatever:hover 无需javascript让IE支持丰富伪类
2010/06/29 Javascript
qTip 基于JQuery的Tooltip插件[兼容性好]
2010/09/01 Javascript
js列举css中所有图标的实现代码
2011/07/04 Javascript
JQuery实现用户名无刷新验证的小例子
2013/03/22 Javascript
javascript操作css属性
2013/12/30 Javascript
js实现选中页面文字将其分享到新浪微博
2015/11/05 Javascript
Bootstrap每天必学之表格
2015/11/23 Javascript
学习javascript面向对象 javascript实现继承的方式
2016/01/04 Javascript
全屏js头像上传插件源码高清版
2016/03/29 Javascript
JQueryEasyUI之DataGrid数据显示
2016/11/23 Javascript
Angularjs之filter过滤器(推荐)
2016/11/27 Javascript
第一次接触神奇的前端框架vue.js
2016/12/01 Javascript
windows下vue.js开发环境搭建教程
2017/03/20 Javascript
vue实现pdf文档在线预览功能
2019/11/26 Javascript
python对指定目录下文件进行批量重命名的方法
2015/04/18 Python
举例讲解Python中的死锁、可重入锁和互斥锁
2015/11/05 Python
用python制作游戏外挂
2018/01/04 Python
python3.6的venv模块使用详解
2018/08/01 Python
如何基于pythonnet调用halcon脚本
2020/01/20 Python
python 批量下载bilibili视频的gui程序
2020/11/20 Python
HTML5新增的标签和属性归纳总结
2018/05/02 HTML / CSS
介绍一下Java中的static关键字
2012/05/12 面试题
喝酒检查书范文
2014/02/23 职场文书
会计专业自荐信
2014/06/03 职场文书
学会感恩主题班会
2015/08/12 职场文书
2016年全国助残日活动总结
2016/04/01 职场文书
Oracle 数据仓库ETL技术之多表插入语句的示例详解
2021/04/12 Oracle
斗罗大陆八大特殊魂兽,龙族始祖排榜首,第五最残忍(翠魔鸟)
2022/03/18 国漫
Python first-order-model实现让照片动起来
2022/06/25 Python
CentOS7 minimal 最小化安装网络设置过程
2022/12/24 Servers