浅析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 相关文章推荐
简单JS代码压缩器
Oct 12 Javascript
javascript中的107个基础知识收集整理 推荐
Mar 29 Javascript
鼠标移到导航当前位置的LI变色处于选中状态
Aug 23 Javascript
利用js读取动态网站从服务器端返回的数据
Feb 10 Javascript
怎么限制input的text里输入的值只能是数字(正则、js)
May 16 Javascript
JS获取鼠标选中的文字
Aug 10 Javascript
jquery实现表单获取短信验证码代码
Mar 13 Javascript
node.js平台下的mysql数据库配置及连接
Mar 31 Javascript
jQuery插件开发发送短信倒计时功能代码
May 09 jQuery
JavaScript数组去重的几种方法
Apr 07 Javascript
详解Vue组件之间通信的七种方式
Apr 14 Javascript
Vue+Spring Boot简单用户登录(附Demo)
Nov 12 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 日期操作小记
2012/02/27 PHP
CentOS下PHP安装Oracle扩展
2015/02/15 PHP
php实现复制移动文件的方法
2015/07/29 PHP
Thinkphp和onethink实现微信支付插件
2016/04/13 PHP
[原创]php简单隔行变色功能实现代码
2016/07/09 PHP
php使用自定义函数实现汉字分割替换功能示例
2017/01/30 PHP
php实现购物车功能(以大苹果购物网为例)
2017/03/09 PHP
laravel 判断查询数据库返回值的例子
2019/10/11 PHP
Javascript 更新 JavaScript 数组的 uniq 方法
2008/01/23 Javascript
javascript 数据类型转换(parseInt,parseFloat)
2010/07/20 Javascript
jQuery学习笔记 更改jQuery对象
2012/09/19 Javascript
判定是否原生方法的JS代码
2013/11/12 Javascript
如何在MVC应用程序中使用Jquery
2014/11/17 Javascript
JS获取年月日时分秒的方法分析
2016/11/28 Javascript
bootstrap——bootstrapTable实现隐藏列的示例
2017/01/14 Javascript
基于Bootstrap 3 JQuery及RegExp的表单验证功能
2017/02/16 Javascript
Vue.js弹出模态框组件开发的示例代码
2017/07/26 Javascript
Layui实现带查询条件的分页
2019/07/27 Javascript
JS实现动态无缝轮播
2020/01/11 Javascript
vue使用自定义事件的表单输入组件用法详解【日期组件与货币组件】
2020/06/01 Javascript
详解JavaScript执行模型
2020/11/16 Javascript
Python文件和目录操作详解
2015/02/08 Python
利用python打印出菱形、三角形以及矩形的方法实例
2017/08/08 Python
Python实现采用进度条实时显示处理进度的方法
2017/12/19 Python
Python日期时间模块datetime详解与Python 日期时间的比较,计算实例代码
2018/09/14 Python
使用Python批量修改文件名的代码实例
2019/01/24 Python
Python二进制文件读取并转换为浮点数详解
2019/06/25 Python
python爬虫神器Pyppeteer入门及使用
2019/07/13 Python
加拿大鞋网:Globo Shoes
2019/12/26 全球购物
公共艺术专业自荐信
2014/09/01 职场文书
群众路线教育实践活动整改落实情况汇报
2014/10/28 职场文书
2014年大学学生会工作总结
2014/12/02 职场文书
小学远程教育工作总结
2015/08/13 职场文书
深入理解CSS 中 transform matrix矩阵变换问题
2021/08/30 HTML / CSS
苹果M1芯片安装nginx 并且部署vue项目步骤详解
2021/11/20 Servers
VUE解决跨域问题Access to XMLHttpRequest at
2022/05/06 Vue.js