欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

IE下Ajax緩存問題的快速解決方法(get方式)

 更新時(shí)間:2014年01月09日 10:18:50   投稿:jingxian  
IE下Ajax緩存問題的快速解決方法(get方式)。網(wǎng)上搜了很多解決方案,一大把,下面是我認(rèn)為比較全面的解決方案。主要分為客戶端解決和服務(wù)端解決

折騰了半天,程序中使用jquery的load方法進(jìn)行請求,很奇怪為啥第二次無法發(fā)送請求。百度了一把,誰知load是用get方式進(jìn)行請求的,因此IE瀏覽器對

其進(jìn)行緩存了。網(wǎng)上搜了很多解決方案,一大把,下面是我認(rèn)為比較全面的解決方案。主要分為客戶端解決和服務(wù)端解決。

1.客戶端解決方案
IE訪問策略:Internet選項(xiàng)--瀏覽歷史記錄--設(shè)置-- Internet 臨時(shí)文件的選項(xiàng)改為每次訪問網(wǎng)頁時(shí)也可以

1: 在AJAX請求的頁面后加個(gè)隨機(jī)函數(shù),我們可以使用隨機(jī)時(shí)間函數(shù)

在javascript發(fā)送的URL后加上t=Math.random()
例如這樣:URL+"&"+"t="+Math.random();或者new Date();

2: 在XMLHttpRequest發(fā)送請求之前加上XMLHttpRequest.setRequestHeader("If-Modified-Since","0")

一般情況下,這里的XMLHttpRequest不會(huì)直接使用
你應(yīng)該可以找到這樣的代碼
XXXXX.send(YYYYYY);
那么,就把它變成
XXXXX.setRequestHeader("If-Modified-Since","0");
XXXXX.send(YYYYYY);

實(shí)踐證明,兩種方法都非常有效。
1、在服務(wù)端加 header("Cache-Control: no-cache, must-revalidate");
2、在ajax發(fā)送請求前加上 xmlHttpRequest.setRequestHeader("If-Modified-Since","0");
3、在ajax發(fā)送請求前加上 xmlHttpRequest.setRequestHeader("Cache-Control","no-cache");
4、在 Ajax 的 URL 參數(shù)后加上 "?fresh=" + Math.random(); //當(dāng)然這里參數(shù) fresh 可以任意取了
5、第四種方法和第三種類似,在 URL 參數(shù)后加上 "?timestamp=" + new Date().getTime(); //推薦使用這種方式
6、用POST替代GET:不推薦


2.服務(wù)器端解決方案:

以Struts2為例:
Struts2 Server端用法

Xml代碼

復(fù)制代碼 代碼如下:

<package name="json-nocache" extends="json-default">
 <interceptors>
  <interceptor name="cachingHeadersInterceptor" class="com.ssa.pct.web.interceptor.CachingHeaderInterceptor" />
  <interceptor-stack name="defaultSecurityStack">
   <interceptor-ref name="defaultStack" />
   <interceptor-ref name="cachingHeadersInterceptor" />
  </interceptor-stack>
 </interceptors>
  
 <default-interceptor-ref name="defaultSecurityStack" />
</package>

Java代碼
復(fù)制代碼 代碼如下:

public class CachingHeaderInterceptor extends AbstractInterceptor {

 private static final long serialVersionUID = 1L;

 public String intercept(ActionInvocation invocation) throws Exception {
  ActionContext context = invocation.getInvocationContext();
  HttpServletResponse response = (HttpServletResponse) context.get(StrutsStatics.HTTP_RESPONSE);
  if (response != null) {
   response.setHeader("Cache-Control", "no-cache");
   response.setHeader("Pragma", "no-cache");
   response.setHeader("Expires", "-1");
  }
  return invocation.invoke();
 }

}

相關(guān)文章

  • javascript判斷一個(gè)變量是數(shù)組還是對象

    javascript判斷一個(gè)變量是數(shù)組還是對象

    這篇文章主要介紹了javascript判斷一個(gè)變量是數(shù)組還是對象,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • 本地Bootstrap文件字體圖標(biāo)引入?yún)s無法顯示問題的解決方法

    本地Bootstrap文件字體圖標(biāo)引入?yún)s無法顯示問題的解決方法

    這篇文章主要為大家詳細(xì)介紹了本地Bootstrap文件字體圖標(biāo)引入?yún)s無法顯示問題的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • javascript表單驗(yàn)證和Window詳解

    javascript表單驗(yàn)證和Window詳解

    這篇文章主要詳細(xì)介紹了javascript表單驗(yàn)證和Window,并附上了示例代碼,非常使用,對于我們更好的了解表單驗(yàn)證和Window很有幫助,這里推薦給大家
    2014-12-12
  • BootStrap與Select2使用小結(jié)

    BootStrap與Select2使用小結(jié)

    這個(gè)select2組件的功能確實(shí)很強(qiáng)大,可以將圖片放入到select里面隨著文字一起顯示。接下來通過本文給大家分享BootStrap與Select2使用小結(jié),需要的朋友參考下
    2017-02-02
  • js讓彈出新窗口居中顯示的腳本

    js讓彈出新窗口居中顯示的腳本

    我們經(jīng)常需要在新窗口彈出頁面并需要居中顯示
    2008-01-01
  • javascript 觸發(fā)HTML元素綁定的函數(shù)

    javascript 觸發(fā)HTML元素綁定的函數(shù)

    只能觸發(fā)函數(shù)的執(zhí)行,并不能完全模擬出實(shí)際的點(diǎn)擊。
    2010-09-09
  • JavaScript引用類型Array實(shí)例分析

    JavaScript引用類型Array實(shí)例分析

    這篇文章主要介紹了JavaScript引用類型Array,結(jié)合實(shí)例形式較為詳細(xì)的分析了JavaScript數(shù)組相關(guān)的創(chuàng)建、檢測、轉(zhuǎn)換、排序、棧、隊(duì)列、引用等各種常見操作技巧,需要的朋友可以參考下
    2018-07-07
  • JS實(shí)現(xiàn)設(shè)置ff與ie元素絕對位置的方法

    JS實(shí)現(xiàn)設(shè)置ff與ie元素絕對位置的方法

    這篇文章主要介紹了JS實(shí)現(xiàn)設(shè)置ff與ie元素絕對位置的方法,涉及JavaScript針對頁面元素及元素屬性的相關(guān)操作技巧,需要的朋友可以參考下
    2016-03-03
  • JavaScript判斷數(shù)據(jù)類型有幾種方法及區(qū)別介紹

    JavaScript判斷數(shù)據(jù)類型有幾種方法及區(qū)別介紹

    這篇文章主要介紹了JavaScript判斷數(shù)據(jù)類型有幾種方法及區(qū)別介紹,本文給大家分享多種方法通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-09-09
  • electron-builder允許安裝時(shí)請求提升權(quán)限的場景分析

    electron-builder允許安裝時(shí)請求提升權(quán)限的場景分析

    electron-builder 作為一個(gè)用于 Electron 應(yīng)用程序打包的工具,需要下載并使用 Electron 運(yùn)行時(shí)來創(chuàng)建可執(zhí)行文件,這篇文章給大家介紹electron-builder允許安裝時(shí)請求提升權(quán)限的相關(guān)知識,感興趣的朋友跟隨小編一起看看吧
    2024-03-03

最新評論