async在jquery ajax中是一个同步参数了,我们下面来给大家介绍在jquery ajax中使用async时碰到的一些问题与方法介绍,希望例子能给各位同学带来一些帮助哦。
 

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

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后面的语句。

附注:

异步就相当于将ajax 请求以一个线程的方式启动

同步就相当于将ajax 请求逐步执行只有ajax 请求执行文笔后才会执行后面的语句。

例子

<form action="1.jsp">
<input type="text" id="tel" flag="0"/>
<input type="text" id=www.111cn.net flag="0"/>
<input type="submit" value="提交" />
</form>
<script>
$('#tel,#email').blur(function(){
var _this=this;
$.ajax({
type:'POST',
url:'',
//async:false,
dataType:'text',
//data:'',
success:function(data){
if(data==true){
$(_this).attr('flag',1)
}
}
});
}); $('form').submit(function(){
var isSubmit=true;
var input=$('input:text');
for(var i=0; i<input.length;i++){
input.eq(i).blur(); //点击提交 重新做一次验证
if(input.eq(i).attr('flag')==0){
isSubmit=false;
}
}
alert(isSubmit);
return isSubmit;
});
</script>

码如上,点击“提交”,所有输入框做一次ajax验证,如果都返回true,则提交表单;
如果不注释掉:async:false 没问题,但注释掉后,因为是异步传输,submit的时flag值还没来得及返回,所以都为false
表单提交不了
求:如果选择默认的async:true 该怎么判断,然后提交

ajax的async参数导致火狐浏览器闪屏

我的出现闪屏 的情况是:

$.ajax({
    type: "post",
    url: "index.php",
    data: { },
    async:false,
    beforeSend:function(){},
    success: function(data){
        //...
    },
    complete:function(){}
});

在这里, 我的async设为了false, 原意是想返回数据了再执行$.Ajax后面的脚本, 没想到这个地方却导致了在火狐浏览器下出现闪屏.(Firefox 11.0), 滚动条下拉到底部触发ajax的情况.闪屏

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

jquery的$.ajax async使用详解的更多相关文章

  1. Jquery中.ajax和.post详解

    之前写过一篇<.NET MVC 异步提交和返回参数> ,里面有一些ajax的内容,但是不深入,这次详细剖析下jquery中$.ajax的用法. 首先,上代码: jquery-1.5.1 $ ...

  2. jquery的ajax全局事件详解

        jquery在ajax方面是非常强大和方便的,以下是jquery进行ajax请求时方法模板: $.ajax({ type: "get", url: "" ...

  3. JQuery中$.ajax()方法参数详解 及 async属性说明

    url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. type: 要求为String类型的参数,请求方式(post或get)默认为get.注意其他http请求方法,例如put和 ...

  4. JQuery中$.ajax()方法参数详解

    url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. type: 要求为String类型的参数,请求方式(post或get)默认为get.注意其他http请求方法,例如put和 ...

  5. JQuery中$.ajax()方法参数详解(转载)

    url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. type: 要求为String类型的参数,请求方式(post或get)默认为get.注意其他http请求方法,例如put和 ...

  6. 转:JQuery中$.ajax()方法参数详解

    url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. type: 要求为String类型的参数,请求方式(post或get)默认为get.注意其他http请求方法,例如put和 ...

  7. (转)JQuery中$.ajax()方法参数详解

    url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. type: 要求为String类型的参数,请求方式(post或get)默认为get.注意其他http请求方法,例如put和 ...

  8. Jquery中$.ajax()方法参数详解(转)

    转自:http://blog.sina.com.cn/doctor830619 url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. type: 要求为String类型的参数, ...

  9. JQuery中$.ajax()方法参数详解及应用

    url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. type: 要求为String类型的参数,请求方式(post或get)默认为get.注意其他http请求方法,例如put和 ...

随机推荐

  1. Spark metrics on wordcount example

    I read the section Metrics on spark website. I wish to try it on the wordcount example, I can't make ...

  2. jQuery对象和DOM对象之间的相互转换

    DOM对象:DOM(Document Object Model,文档对象模型),每一份DOM都可以表示成为一棵树,DOM对象可以使用javascript中的方法. jQuery对象:jQuery对象就 ...

  3. Bitnami Redmine安装和插件配置

    公司要进行敏捷开发管理,最后选择Redmine作为管理工具. 而Redmine本身的安装非常麻烦,要安装mysql,ruby,redmine,apach. 显然这不是一个偷懒的人应该做的,最后找到Bi ...

  4. 错误详情:CL : fatal error C1033: cannot open program database ''

    在网上找了好多方法都不行,最后用下面方法解决了. 修改VS目录下的\VC\bin\cl.exe 的兼容性设置,取消兼容模式和以管理员身份运行即可.

  5. Windows Phone 7之XNA游戏:重力感应

    Windows Phone XNA游戏提供的重力传感器可以利用量测重力的原理判手机移动的方向,允许使用者利用摇动或甩动手机的方式控制游戏的执行,其原理和汽车的安全气囊相同,在侦测到汽车快速减速的时候立 ...

  6. SpringMvc_快速入门,深入分析

    目录  一.前言二.spring mvc 核心类与接口三.spring mvc 核心流程图 四.spring mvc DispatcherServlet说明 五.spring mvc 父子上下文的说明 ...

  7. 关于HTML条件注释你可能不知道的一些事儿

    最近经常看到类似这样的HTML代码片段,很多前端开发人员应该都熟悉: 1 <!--[if lt IE 7]>      <html class="ie6"> ...

  8. OpenCV 3.0 VS2010 Configuration

    Add in the system Path: C:\opencv\build\x86\vc10\bin; Project->Project Property->Configuration ...

  9. PHP有两个不同的版本:4.x系列版本和5.x系列版本

    在为用户提供动态内容方面,PHP和MySQL是一个强大的组合.这些年来,这两项产品已经跨越了它们最初的应用舞台,现在,一些世界上最繁忙的网站也在应用它们.虽然它们当初都是开源软件,只能在UNIX/Li ...

  10. mybatis配置oracle的主键自增长

    引用自:https://hacpai.com/article/1405392025960 mysql.sqlserver等数据库本身带有主键自增长像auto_increment的功能可以直接使用 us ...