zoukankan      html  css  js  c++  java
  • Ajax请求中的async:false/true的作用

    原文连接:https://www.cnblogs.com/yiliweichinasoft/p/3667365.html

    Ajax请求中的async:false/true的作用

    官方的解释是:http://api.jquery.com/jQuery.ajax/

    async Boolean Default: true 

    By default, all requests are sent asynchronous (e.g. this is set to true by default). If you need synchronous requests, set this option to false. Note that synchronous requests may temporarily lock the browser, disabling any actions while the request is active.

    async. 默认是true,即为异步方式,$.Ajax执行后,会继续执行ajax后面的脚本,直到服务器端返回数据后,触发$.Ajax里的success方法,这时候执行的是两个线程。若要将其设置为false,则所有的请求均为同步请求,在没有返回值之前,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。

    下面查看一个示例:

    复制代码
     1 var temp;
     2 $.ajax({
     3 
     4    async: false,
     5    type : "POST",
     6    url : defaultPostData.url,
     7    dataType : 'json',
     8    success : function(data) 
     9    {
    10 
    11       temp=data;
    12    }
    13 
    14 });
    15 
    16 alert(temp);
    复制代码

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

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

    不过上面设置同步请求的方法,有网友曾经反馈将async设成false后, 原意是想返回数据了再执行$.Ajax后面的脚本, 没想到这个地方却导致了在火狐浏览器下出现闪屏(Firefox 11.0),滚动条下拉到底部触发ajax的情况。最后只能将async:false注释掉, 也就是async为ture的情况下,成功解决了火狐浏览器滚动条下拉到底部触发ajax出现闪屏的问题。

    转载请标明出处:http://www.penglig.com/post-172.html

  • 相关阅读:
    Rocket broker启动失败?
    jar下载慢,maven配置国内仓库
    Linux下搭建RocketMQ环境
    几种常见css布局
    原生JS快速实现拖放
    更换 grub 主题
    安装node环境以及cnpm
    用 hexo 快速搭建博客
    关于8080端口被占用问题的解决办法。
    idea的几个常用+实用的快捷键!
  • 原文地址:https://www.cnblogs.com/sunny3158/p/14181199.html
Copyright © 2011-2022 走看看