解决jquery load,get 方法缓存数据问题
- 当jquery load 一个页面时候 只加载一次 解决方法有俩种
- 1jQuery提供一个防止ajax使用缓存的方法,
- <script type="text/javascript" language="javascript">
- $.ajaxSetup ({
- cache: false //close AJAX cache
- });
- </script>
- 这个方法在每次load页面的时候都要执行一次 否则只会再第一次时候有效 其他load 还会读取缓存页面
- 2 第二就是修改load 加载的url地址
- 例如 再url 多加个时间参数就可以 这个方法再wap1.0 中 我也用过避免读取缓存
- 还有就是之前查到的其他两种办法,针对该问题,不起作用:
- 1、设置html的缓存
- <META HTTP-EQUIV="Pragma" CONTENT="no-cache">
- <META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
- <META HTTP-EQUIV="Expires" CONTENT="0">
- 2、java设置缓存
- <%
- request.setAttribute("decorator", "none");
- response.setHeader("Cache-Control","no-cache"); //HTTP 1.1
- response.setHeader("Pragma","no-cache"); //HTTP 1.0
- response.setDateHeader ("Expires", 0); //prevents caching at the proxy server
- %><pre name="code" class="java">Jquery $.get方法缓存问题
- 在ie系列下,$.get()方法在url地址固定时,会缓存返回结果,导致不可预料的问题。但在火狐下,则不会缓存。
- 要解决该问题有很多办法,最直接的是把$.get()方法换成$.ajax(),然后配置cache:false即可。我不喜欢$.ajax()繁琐的配置方式,可采取以下最简单方式实现:
- 在$.get()的data后面加上新的随机参数,如{data: mydata, stamp: Math.random() },由于每次数据不一样,故请求后返回的数据不会缓存。
- 另外也可把$.get()改成$.post(),也可解决此问题。
- 一劳永逸的解决办法是设置全局参数,$.ajaxSetup({cache:false});这样设置后,基本所有的get请求jquery都会自动加上_1948838字样的附加参数,总体来说与上面的解决方法类似。
- 例如:
- $.get("ProvinceListByCountryIDHandler.ashx", { "cid": $drpCountry.val(), "time": new Date().getTime() }, function(data, returnStatus) {})
相关推荐
大象从不倒下 2020-07-31
AlisaClass 2020-07-19
SoShellon 2013-06-01
羽化大刀Chrome 2013-05-31
LutosX 2013-07-29
淡风wisdon大大 2020-06-06
chenshuixian 2013-06-01
ligaoyuan00 2013-03-31
swift 2013-03-26
quanhaoH 2013-06-17
myloveqiqi 2020-08-09
猫沙盆 2020-07-08
猫沙盆 2020-07-07
云端漂移 2020-07-06
xiaohuli 2020-06-11
葉無聞 2020-06-09
福叔 2020-06-02
CaiKanXP 2020-06-02