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使用详解的更多相关文章
- Jquery中.ajax和.post详解
之前写过一篇<.NET MVC 异步提交和返回参数> ,里面有一些ajax的内容,但是不深入,这次详细剖析下jquery中$.ajax的用法. 首先,上代码: jquery-1.5.1 $ ...
- jquery的ajax全局事件详解
jquery在ajax方面是非常强大和方便的,以下是jquery进行ajax请求时方法模板: $.ajax({ type: "get", url: "" ...
- JQuery中$.ajax()方法参数详解 及 async属性说明
url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. type: 要求为String类型的参数,请求方式(post或get)默认为get.注意其他http请求方法,例如put和 ...
- JQuery中$.ajax()方法参数详解
url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. type: 要求为String类型的参数,请求方式(post或get)默认为get.注意其他http请求方法,例如put和 ...
- JQuery中$.ajax()方法参数详解(转载)
url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. type: 要求为String类型的参数,请求方式(post或get)默认为get.注意其他http请求方法,例如put和 ...
- 转:JQuery中$.ajax()方法参数详解
url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. type: 要求为String类型的参数,请求方式(post或get)默认为get.注意其他http请求方法,例如put和 ...
- (转)JQuery中$.ajax()方法参数详解
url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. type: 要求为String类型的参数,请求方式(post或get)默认为get.注意其他http请求方法,例如put和 ...
- Jquery中$.ajax()方法参数详解(转)
转自:http://blog.sina.com.cn/doctor830619 url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. type: 要求为String类型的参数, ...
- JQuery中$.ajax()方法参数详解及应用
url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. type: 要求为String类型的参数,请求方式(post或get)默认为get.注意其他http请求方法,例如put和 ...
随机推荐
- 导入/导出Excel
--从Excel文件中,导入数据到SQL数据库中,很简单,直接用下面的语句:/*============================================================ ...
- PHP API 框架开发的学习
基于互联网的应用正变得越来越普及,在这个过程中,有更多的站点将自身的资源开放给开发者来调用.对外提供的API 调用使得站点之间的内容关联性更强,同时这些开放的平台也为用户.开发者和中小网站带来了更大的 ...
- 简单几何(直线求交点) POJ 2074 Line of Sight
题目传送门 题意:从一条马路(线段)看对面的房子(线段),问连续的能看到房子全部的最长区间 分析:自己的思路WA了:先对障碍物根据坐标排序,然后在相邻的障碍物的间隔找到区间,这样还要判断是否被其他障碍 ...
- flst与fitem命令是这么用的
k,94,75.69947,44.09817,-40 k,95,50.9349,44.01963,-40 k,96,37.83799,45.04814,-40 k,97,15.1304,48.2934 ...
- Linux redirect the stdout to a file
1: int save_out = dup(fileno(stdout));//backup stdout 2: int out = open("cout.log", O_RD ...
- BZOJ4129: Haruna’s Breakfast
Description Haruna每天都会给提督做早餐! 这天她发现早饭的食材被调皮的 Shimakaze放到了一棵 树上,每个结点都有一样食材,Shimakaze要考验一下她. 每个食材都有一个美 ...
- BZOJ1196: [HNOI2006]公路修建问题
Description OI island是一个非常漂亮的岛屿,自开发以来,到这儿来旅游的人很多.然而,由于该岛屿刚刚开发不久,所以那里的交通情况还是很糟糕.所以,OIER Association组织 ...
- sql server 取随机行
--从table_name中随机取n行 select top n * from table_name order by NEWID()
- HttpClient_HttpClient 4.3.6 HTTP状态管理
HTTP状态管理 最初的HTTP被设计成以状态.请求/应答为导向的协议,它被制作成是没有特殊条款的,以便在状态会话中能交换逻辑关系请求/应答.HTTP协议越来越受欢迎和被采用,越来越多的系统会在应用程 ...
- 一个关于el中获取对象属性的错误
具体过程描述为: 在JSP页面中通过<%%>定义一个非public类.并定义两个属性相应的get和set方法.在该代码段中实例化该对象,并将该对象放入Request域中. 然后在页面中使用 ...