`
yanglei008
  • 浏览: 83881 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ajax缓存处理

    博客分类:
  • ajax
阅读更多
Ajax中请求被缓存的问题2008-07-13 19:55关键词:ajax get cache 缓存 请求

Ajax中请求被缓存的问题

在Ajax开发中,会遇到浏览器缓存内容的问题,比如,某个元素注册了鼠标事件(onmouseover),事件触发后会通过xmlhttprequest到服务器获取内容,在不刷新页面的情况下,浏览器会缓存第一次请求的内容,服务端更新后浏览器仍然显示第一次的内容。

通常,这种请求都是xmlhttprequest发起的GET请求。根据 HTTP 规范,GET 用于信息获取,而且应该是幂等的。也就是说,当使用相同的URL重复GET请求会返回预期的相同结果时,GET方法才是适用的。当对一个请求有副作用的时候(例如,提交数据注册新用户时),应该使用POST请求而不是GET。所以浏览器会对GET请求做缓存处理。

解决办法:

一. GET请求URL后附加字串,让服务器认为不是相同的请求。

例 "http://www.example.com/index.php?class=aitcle&page=5&_t=" + new Date().getTime()

二. 在ajax发送请求前加上 xmlHttpRequest.setRequestHeader("If-Modified-Since","0")

三. 在ajax发送请求前加上 xmlHttpRequest.setRequestHeader("Cache-Control","no-cache");

四. 服务端响应请求时加 header("Cache-Control: no-cache, must-revalidate"); (PHP)

五. 使用POST代替GET,浏览器不会对POST做缓存

                                  
分享到:
评论

相关推荐

    浅谈Ajax的缓存机制

    Ajax的缓存机制和浏览器处理资源时的缓存机制是一样的。 三条简单规则: 只要是URL相同的GET请求,浏览器会使用缓存(当然还要看服务器的Cache-Control/Expires/Last-Modified/ETag头的设置)。 只要是POST请求,...

    Ajax对缓存的处理方法实例分析

    本文实例讲述了Ajax对缓存的处理方法。分享给大家供大家参考,具体如下: 缓存 浏览器的一次请求需要从服务器获得许多的css、img、js等相关文件,如果每次请求都把相关的资源文件加载一次,对带宽、服务器资源、用户...

    ajax的get请求时缓存处理解决方法

    主要介绍了ajax的get请求时缓存处理解决方法,详细分析了常见的四种解决方法,非常具有实用价值,需要的朋友可以参考下

    防止页面url缓存中ajax中post请求的处理方法

    主要介绍了防止页面url缓存中ajax中post请求的处理方式的相关资料,希望通过本文能帮助到大家,需要的朋友可以参考下

    对jquery的ajax进行二次封装以及ajax缓存代理组件:AjaxCache详解

    有一些ajax请求的数据,对实时性要求不高,即使我们把第一次请求到的这些数据缓存起来,然后当相同请求再次发起时直接拿之前缓存的数据返回也不会对相关功能有影响,通过这种手工的缓存控制,减少了ajax请求,多多少...

    ajax异步请求小结

    具体描述ajax的获取,ajax属性,参数设置,编程步骤,缓存问题,get/post乱码问题,以及应用场景的阐述 onreadystatechange 绑订事件处理函数(处理readystatechange事件)。 注:当readyState属性值发生了任何的改变...

    jQuery ajax cache缓存问题

    如果引起来, 导致的结果: ‘false’ 按true处理。 因为只有空字串才是true。 例如:在浏览器地址栏输入: [removed]alert(‘false’?’true’:’false’); 结果将是:true。 直接结果:ajax请求不重新去...

    在(ASP/PHP/JSP/html/js)中禁止ajax缓存的方法集锦

    禁止ajax缓存最简单的办法就是在js端直接生成一个随机数了,但是有时会发现此方法不适用于post了,如果我们要禁止post 提交数据的ajax缓存需要怎么处理呢,下面我整理了很多关于禁止ajax缓存的例子

    如何解决Ajax请求结果的缓存问题说明

    如何解决Ajax请求结果的缓存问题说明

    ajax-data-model:ajax 通用数据请求处理模型。提供 ajax 请求、数据缓存、通用性接口约定处理等能力

    基于接口约定的通用回调处理支持(通用错误处理、loading 状态、通用参数、埋点上报<接口超时、接口错误、接口异常、数据埋点等>...) 快速开始 1. 下载安装 手动下载:到代码仓库下载 的 zip 包,取得 dist 目录内...

    JQUERY的AJAX请求缓存里的数据问题处理

    $.ajax({ url: 'ios/index', cache: false, type: 'post', data: { timestamp: new Date().getTime() //params here }, dataType: 'json' }).done(function (data) { //codes here }); 是不是非常的简单呢...

    Web前端Ajax&JQuery视频教程课件

    本套Java教程涵盖Ajax的实现原理,XMLHttpRequest实现Ajax,回调函数,Ajax数据交换格式(HTML、XML、JSON),Ajax发送GET和POST请求,异步编程模型和同步编程模型,解决Ajax的GET请求缓存问题,使用Ajax验证用户名...

    spingmvc+mybatis+统一异常处理机制

    统一异常处理会区分前端是否ajax请求,自动返回json数据格式,要求开发人员在处理ajax请求时统一封装成一个对象返回,以符合代码统一规范。 此工程在idea环境编写,导入请自己新建工程手工复制代码导入。

    CacheRequest:缓存你的 AJAX 请求

    它只是一个用于缓存来自 ajax 的响应的类。 这不允许完全脱机操作。 您应该将其用于其他目的,例如: 快速响应用户一些不需要实时的信息; 在设备离线时提供有效但不是那么新的信息; 在等待真实请求的同时获取...

    ajax经典怎样传输数据

    ajax经典怎样传输数据,$.ajax({ async: true, // 默认true(异步请求) cache: true, // 默认true,设置为 false 将不会从浏览器缓存中加载请求信息。 type: "POST", // 默认:GET 请求方式:[POST/GET] dataType: ...

    Ajax课件学习(免费)

    XMLHttpRequest是XMLHTTP组件的对象,通过这个对象,AJAX可以像桌面应用程序一样只同服务器进行数据层面的交换,而不用每次都刷新界面,也不用每次将数据处理的工作都交给服务器来做;这样既减轻了服务器负担又加快...

Global site tag (gtag.js) - Google Analytics