浅析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实例教程(19) 使用HoTMetal(5)
Dec 23 Javascript
javascript编程起步(第三课)
Feb 27 Javascript
摘自百度的图片轮换效果代码
Nov 19 Javascript
ajax的hide隐藏问题解决方法
Dec 11 Javascript
js解决弹窗问题实现班级跳转DIV示例
Jan 06 Javascript
jquery处理json数据实例分析
Jun 03 Javascript
jQuery插件ajaxFileUpload使用实例解析
Oct 19 Javascript
vue.js实现格式化时间并每秒更新显示功能示例
Jul 07 Javascript
解决vue.js this.$router.push无效的问题
Sep 03 Javascript
Vue中img的src是动态渲染时不显示的解决
Nov 14 Javascript
原生js实现放大镜组件
Jan 22 Javascript
原生js实现九宫格拖拽换位
Jan 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
PHP输出英文时间日期的安全方法(RFC 1123格式)
2014/06/13 PHP
Yii输入正确验证码却验证失败的解决方法
2017/06/06 PHP
php 多进程编程父进程的阻塞与非阻塞实例分析
2020/02/22 PHP
PHP 与 js的通信(via ajax,json)
2010/11/16 Javascript
检测jQuery.js是否已加载的判断代码
2011/05/20 Javascript
更快的异步执行(setTimeout多浏览器)
2014/08/12 Javascript
TypeScript 学习笔记之基本类型
2015/06/19 Javascript
深入理解JavaScript中为什么string可以拥有方法
2016/05/24 Javascript
JS快速实现移动端拼图游戏
2016/09/05 Javascript
JS打开摄像头并截图上传示例
2017/02/18 Javascript
关于Stream和Buffer的相互转换详解
2017/07/26 Javascript
JavaScript实现简单评论功能
2017/08/17 Javascript
JavaScript文件的同步和异步加载的实现代码
2017/08/19 Javascript
react学习笔记之state以及setState的使用
2017/12/07 Javascript
vue 使用 v-model 双向绑定父子组件的值遇见的问题及解决方案
2021/03/01 Vue.js
基于python元祖与字典与集合的粗浅认识
2017/08/23 Python
[原创]教女朋友学Python(一)运行环境搭建
2017/11/29 Python
Python使用sorted对字典的key或value排序
2018/11/15 Python
Python 移动光标位置的方法
2019/01/20 Python
在cmd中查看python的安装路径方法
2019/07/03 Python
python selenium操作cookie的实现
2020/03/18 Python
Python如何省略括号方法详解
2020/03/21 Python
python线性插值解析
2020/07/05 Python
利用CSS3实现单选框动画特效示例代码
2016/09/26 HTML / CSS
CSS3 2D模拟实现摩天轮旋转效果
2016/11/16 HTML / CSS
美国时装品牌:Nautica(诺帝卡)
2016/08/28 全球购物
装潢设计实习自我鉴定
2013/09/19 职场文书
应届生保险求职信
2013/11/11 职场文书
DIY蛋糕店的创业计划书范文
2013/12/26 职场文书
村党的群众路线教育实践活动总结材料
2014/10/31 职场文书
2015欢度元旦标语口号
2014/12/09 职场文书
农村结婚典礼主持词
2015/06/29 职场文书
运动会运动员赞词
2015/07/22 职场文书
2019最新版股权转让及委托持股协议书范本
2019/08/07 职场文书
Python Socket编程详解
2021/04/25 Python
win10输入法不见了只能打出字母怎么解决?
2022/08/05 数码科技