Ajax请求中的async和cache的作用

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) {  
       ...
  }  
});  

你可能感兴趣的:(Django进阶)