博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Ajax请求中的async:false/true的作用
阅读量:5855 次
发布时间:2019-06-19

本文共 800 字,大约阅读时间需要 2 分钟。

前言:

  昨天在做倒计时修改的时候,发现多次点击按钮,我明明做了限制,点击多次的时候发现怎么都会请求了两次,然后我写的是请求成功添加文字,结果总是会添加两次文字,

说明ajax请求了两次了,在网上查了下跟异步有点关系,没办法,我把ajax异步改成同步了,结果就可以了,我想要的文字也是只会添加一行了!下面关于ajax 的 async:false/true

的作用整理下:

  async. 默认是 true,即为异步方式,$.ajax执行后,会继续执行ajax后面的脚本,直到服务器端返回数据后,触发$.ajax里的success方法,这时候执行的是两个线程。

  async 设置为 false,则所有的请求均为同步请求,在没有返回值之前,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。

 

下面查看一个示例:

var temp;$.ajax({ async: false,  type : "post",  url : defaultpostdata.url,  datatype : 'json',  success : function(data) {     temp=data;  }});alert(temp);

这个ajax请求为同步请求,在没有返回值之前,alert(temp)是不会执行的。

如果async设置为:true,则不会等待ajax请求返回的结果,会直接执行ajax后面的语句。

不过上面设置同步请求的方法,有网友曾经反馈将async设成false后, 原意是想返回数据了再执行$.ajax后面的脚本, 没想到这个地方却导致了在火狐浏览器下出现闪屏(firefox 11.0),滚

动条下拉到底部触发ajax的情况。最后只能将async:false注释掉,也就是async为ture的情况下,成功解决了火狐浏览器滚动条下拉到底部触发ajax出现闪屏的问题。

转载地址:http://tiojx.baihongyu.com/

你可能感兴趣的文章
关于Keytool创建服务器自签名证书
查看>>
如何详细设置SUN/IBM JVM的GC日志输出(转)
查看>>
python3.x异常处理(X)-------------官方文档的异常类型
查看>>
springboot git maven jenkins 实现自动化部署
查看>>
VIM使用系列:使用VIM进行项目开发的准备工作
查看>>
踢开绊脚石:微服务难点之服务调用的解决方案
查看>>
linux下 qt5 链接Mysql
查看>>
JS前台数据校验(常用)留底备份
查看>>
android国际化
查看>>
gulp中如何保证任务执行顺序。
查看>>
PHP PDO prepare()、execute()和bindParam()方法详解
查看>>
在 Web 模块中创建资源环境引用
查看>>
飞思卡尔IMX53核心板介绍
查看>>
openfire的入门学习
查看>>
深入JVM锁机制1-synchronized 深入JVM锁机制2-Lock 对比
查看>>
自定义dialog
查看>>
truelicense使用报错,文件提前结束
查看>>
DatePicker - 日期选择插件
查看>>
磁盘基本概念
查看>>
Android中SwipeRefreshLayout支持上拉加载更多
查看>>