浅析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 相关文章推荐
让iframe自适应高度(支持XHTML,支持FF)
Jul 24 Javascript
一组JS创建和操作表格的函数集合
May 07 Javascript
解决jquery中美元符号命名冲突问题
Jan 08 Javascript
jQuery实现首页图片淡入淡出效果的方法
Jun 10 Javascript
JQuery+EasyUI轻松实现步骤条效果
Feb 22 Javascript
简介EasyUI datagrid editor combogrid搜索框的实现
Apr 01 Javascript
jQuery无刷新上传之uploadify3.1简单使用
Jun 18 Javascript
浅谈js闭包理解
Apr 01 Javascript
node学习笔记之读写文件与开启第一个web服务器操作示例
May 29 Javascript
jquery实现烟花效果(面向对象)
Mar 10 jQuery
用云开发Cloudbase实现小程序多图片内容安全监测的代码详解
Jun 07 Javascript
js中Map和Set的用法及区别实例详解
Feb 15 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的access操作类
2008/04/09 PHP
PHP 如何利用phpexcel导入数据库
2013/08/24 PHP
源码分析 Laravel 重复执行同一个队列任务的原因
2017/12/25 PHP
PHP实现的一致性Hash算法详解【分布式算法】
2018/03/31 PHP
PHP基于ip2long实现IP转换整形
2020/12/11 PHP
JavaScript DOM 学习第二章 编辑文本
2010/02/19 Javascript
利用NodeJS的子进程(child_process)调用系统命令的方法分享
2013/06/05 NodeJs
Javascript数组与字典用法分析
2014/12/13 Javascript
javascript组合使用构造函数模式和原型模式实例
2015/06/04 Javascript
理解javascript异步编程
2016/01/27 Javascript
jQGrid动态填充select下拉框的选项值(动态填充)
2016/11/28 Javascript
浅谈js-FCC算法Friendly Date Ranges(详解)
2017/04/10 Javascript
Vue2.0 axios前后端登陆拦截器(实例讲解)
2017/10/27 Javascript
解决npm安装Electron缓慢网络超时导致失败的问题
2018/02/06 Javascript
详解react阻止无效重渲染的多种方式
2018/12/11 Javascript
前端Electron新手入门教程详解
2019/06/21 Javascript
[02:41]2015国际邀请赛中国区预选赛观战指南
2015/05/20 DOTA
Python网络编程中urllib2模块的用法总结
2016/07/12 Python
解决python2.7 查询mysql时出现中文乱码
2016/10/09 Python
浅谈numpy中linspace的用法 (等差数列创建函数)
2017/06/07 Python
Python之文字转图片方法
2018/05/10 Python
python操作redis方法总结
2018/06/06 Python
解决安装python库时windows error5 报错的问题
2018/10/21 Python
使用Python和Scribus创建一个RGB立方体的方法
2019/07/17 Python
Tensorflow 多线程设置方式
2020/02/06 Python
python如何导入依赖包
2020/07/13 Python
Python 将代码转换为可执行文件脱离python环境运行(步骤详解)
2021/01/25 Python
利用Python实现最小二乘法与梯度下降算法
2021/02/21 Python
英国领先的在线高尔夫商店:Gamola Golf
2019/11/16 全球购物
后勤服务中心总经理工作职责
2014/03/03 职场文书
班级团队活动方案
2014/08/14 职场文书
2015年售后服务工作总结
2015/04/25 职场文书
员工加薪申请报告
2015/05/15 职场文书
python opencv旋转图片的使用方法
2021/06/04 Python
sql server偶发出现死锁的解决方法
2022/04/10 SQL Server
mysql查看表结构的三种方法总结
2022/07/07 MySQL