async:false/true的作用
async. 默认是true,即为异步方式,Ajax执行后,会继续执行ajax后面的脚本,直到服务器端返回数据后,触发Ajax里的success方法,这时候执行的是两个线程。若要将其设置为false,则所有的请求均为同步请求,在没有返回值之前,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。
下面查看一个示例:
var temp;
$.ajax({
async:false,
type:'POST',
url: '/index',
dataType: 'json',
success: function(res){
if(res.status==200){
temp = res.msg;
}
}
});
alert(temp);
这个ajax请求为同步请求,在没有返回值之前,alert(temp)是不会执行的。
如果async设置为:true,则不会等待ajax请求返回的结果,会直接执行ajax后面的语句。
Ajax请求中cache属性
cache作用:是否在缓存中读取数据的读取。
cache属性是true时:在第一次请求完成之后,如果地址和参数不变化,第二次去请求,会默认获取缓存中的数据,不去读取服务器端的最新数据。
cache属性是flase时:每次读取的是最新的数据。
ajax缓存只对GET方式的请求有效,因为浏览器认为POST请求提交的内容必定有变化,所以不走缓存。
$.ajax({
cache :false,
type : "post",
url : "/index",
datatype : 'json',
success : function(data) {
...
}
});