jQuery调用Ajax高效缓存

jQuery调用Ajax高效缓存

ID:37710221

大小:17.07 KB

页数:6页

时间:2019-05-29

jQuery调用Ajax高效缓存_第1页
jQuery调用Ajax高效缓存_第2页
jQuery调用Ajax高效缓存_第3页
jQuery调用Ajax高效缓存_第4页
jQuery调用Ajax高效缓存_第5页
资源描述:

《jQuery调用Ajax高效缓存》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、jQuery调用Ajax高效缓存 【IT168 技术】尽管jQuery在浏览器ajax调用的时候对缓存提供了很好的支持,还是有必要了解一下如何高效地使用http协议。  首先要做的事情是在服务器端支持HTTPGET,定义不同的URL输出不同的数据(MVC里对应的就是action)。如果要使用同一个地址获取不同的数据,那就不对了,一个HTTPPOST也不行因为POST不能被缓存。许多开发人员使用POST主要有2个原因:明确了数据不能被缓存,或者是避免JSON攻击(JSON返回数组的时候可以被入侵)。  缓存解释  jQuery全局对象里的ajax

2、方法提供了一些options来支持缓存和ConditionalGETs功能。 $.ajax({  ifModified:[true

3、false],  cache:[true

4、false],  });  ifModified选项定义的是在ajax调用的时候是否支持ConditionalGETs功能。jQuery会自动帮我们处理服务器端返回的名为Last-Modified的header值,然后在随后的请求里的header里发送If-Modified-Since。这需要我们的MVCController要实现ConditionalGETs功能才能用。C

5、onditionalGETs功能在http缓存上下文中用于重新验证缓存中过期的条目。如果jQuery认为一个条目已经过期了,它首先会请求服务器使用ConditionalGETs功能重新验证该条目,如果服务器返回状态码304(Notmodified),jQuery会重新使用缓存里的该项目,这样的话,我们可以节约很多流量去下载页面内容。  cache选项基本上是覆盖服务器端返回的httpheader里的所有关于缓存的设置,如果设置cache选项为false的话,jQuery会在请求的URL后面附件一个时间戳,以便区分之前的URL地址,这样没错请求的

6、内容都是最新的,也就是说浏览器每次接收的都是新地址,自然返回的都是最新数据。  让我们来看几个场景:  服务器端响应里设置No-Cache  服务器端为王,如果服务器端明确定义了response响应不能被缓存的话,jQuery也无能为力。ajax里的cache选项将被忽略。  JS代码:$('#nocache').click(function(){  $.ajax({  url:'/Home/NoCache',  ifModified:false,  cache:true,  success:function(data,status,xhr){

7、  $('#content').html(data.count);  }  });  });   C#代码:publicActionResultNoCache()  {  //禁用缓存  Response.Cache.SetCacheability(HttpCacheability.NoCache);  returnJson(new{count=Count++},JsonRequestBehavior.AllowGet);  }   服务器端响应里设置过期时间  服务器端设置过期时间用于缓存数据,该条目在客户端将依据过期时间被缓存。  JS代码

8、:$('#expires').click(function(){  $.ajax({  url:'/Home/Expires',  ifModified:false,  cache:true,  success:function(data,status,xhr){  $('#content').html(data.count);  }  });  });   C#代码:publicActionResultExpires()  {  Response.Cache.SetExpires(DateTime.Now.AddSeconds(5));  r

9、eturnJson(new{count=Count++},JsonRequestBehavior.AllowGet);  }   客户端从来不缓存数据  客户端决定每次都要最新的数据(不能使用缓存),也就是说ajax里的cache选项设置为false,不管服务器端如何定义,jQuery每次请求的URL地址都是唯一不同的,目的是每次都获取最新的内容。  JS代码:$('#expires_nocache').click(function(){  $.ajax({  url:'/Home/Expires',  ifModified:false,  c

10、ache:false,//这里是关键  success:function(data,status,xhr){  $('#content').html(

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。