首頁 web前端 js教程 IE下Ajax快取問題的快速解決方法(get方式)_javascript技巧

IE下Ajax快取問題的快速解決方法(get方式)_javascript技巧

May 16, 2016 pm 05:04 PM
ajax ie 快取

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

其進行快取了。網路上搜了很多解決方案,一大把,以下是我認為比較全面的解決方案。主要分為客戶端解決和服務端解決。

1.客戶端解決方案
IE存取策略:Internet選項--瀏覽歷史記錄--設定-- Internet 臨時檔案的選項改為每次訪問網頁時也可以

1: 在AJAX請求的頁面後面加上隨機函數,我們可以使用隨機時間函數

在javascript發送的URL後面加上t=Math.random()
例如這樣:URL "&" "t=" Math.random();或new Date();

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

一般情況下,這裡的XMLHttpRequest不會直接使用
你應該可以找到這樣的程式碼
XXXXX.send(YYYYYY);
那麼,就把它變成
XXXXX.setRequestHeader ("If-Modified-Since","0");
XXXXX.send(YYYYYY);

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


2.伺服器端解決方案:

以Struts2為例:
Struts2 Server端用法

Xml程式碼

複製程式碼 程式碼如下:

 
  


   
   
  

 




Java代碼


複製程式碼 程式碼如下:
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 responseas (HttmSerutsval.  if (response ! = null) {
   response.setHeader("Cache-Control", "no-cache");
   response.setHeader("Pragma", "no-cache");
  . Expires", "-1");
  }
  return invocation.invoke();
 }

}


本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Linux如何查看和刷新dns快取 Linux如何查看和刷新dns快取 Mar 07, 2024 am 08:43 AM

DNS(DomainNameSystem)是網際網路中用來將網域名稱轉換為對應IP位址的系統。在Linux系統中,DNS快取是一種將網域名稱和IP位址的映射關係儲存在本地的機制,可提高網域解析速度,減輕DNS伺服器的負擔。 DNS快取允許系統在之後存取相同網域名稱時快速檢索IP位址,而不必每次都向DNS伺服器發出查詢請求,從而提高網路效能和效率。本文不念將和大家一起探討如何在Linux上查看和刷新DNS緩存,以及相關的詳細內容和範例程式碼。 DNS快取的重要性在Linux系統中,DNS快取扮演關鍵的角色。它的存在

解決jQuery AJAX請求遇到403錯誤的方法 解決jQuery AJAX請求遇到403錯誤的方法 Feb 20, 2024 am 10:07 AM

標題:解決jQueryAJAX請求出現403錯誤的方法及程式碼範例403錯誤是指伺服器禁止存取資源的請求,通常會導致出現這個錯誤的原因是請求缺少權限或被伺服器拒絕。在進行jQueryAJAX請求時,有時會遇到這種情況,本文將介紹如何解決這個問題,並提供程式碼範例。解決方法:檢查權限:首先要確保請求的URL位址是正確的,同時驗證是否有足夠的權限來存取該資

PHP 與 Ajax:建立一個自動完成建議引擎 PHP 與 Ajax:建立一個自動完成建議引擎 Jun 02, 2024 pm 08:39 PM

使用PHP和Ajax建置自動完成建議引擎:伺服器端腳本:處理Ajax請求並傳回建議(autocomplete.php)。客戶端腳本:發送Ajax請求並顯示建議(autocomplete.js)。實戰案例:在HTML頁面中包含腳本並指定search-input元素識別碼。

如何解決jQuery AJAX報錯403的問題? 如何解決jQuery AJAX報錯403的問題? Feb 23, 2024 pm 04:27 PM

如何解決jQueryAJAX報錯403的問題?在開發網頁應用程式時,經常會使用jQuery來發送非同步請求。然而,有時在使用jQueryAJAX時可能會遇到錯誤代碼403,表示伺服器禁止存取。這種情況通常是由伺服器端的安全性設定所導致的,但可以透過一些方法來解決這個問題。本文將介紹如何解決jQueryAJAX報錯403的問題,並提供具體的程式碼範例。一、使

CPU、記憶體、快取的關係詳細解釋! CPU、記憶體、快取的關係詳細解釋! Mar 07, 2024 am 08:30 AM

CPU(中央處理器)、記憶體(隨機存取記憶體)以及快取之間存在著緊密的相互作用,它們合力構成了電腦系統的關鍵組成部分。它們之間的協調配合,確保了電腦的正常運作和高效性能。 CPU作為電腦的大腦,負責執行各種指令和資料處理;記憶體則用於臨時儲存資料和程序,提供了快速的讀寫存取速度;而快取則起到了緩衝作用,加快了資料的存取速度,提高了電腦的CPU是電腦的核心元件,負責執行各種指令、算術運算和邏輯操作。它被稱為電腦的"大腦",承擔著處理資料和執行任務的重要角色。記憶體是電腦中重要的儲存設備,

PHP APCu 的進階用法:解鎖隱藏的力量 PHP APCu 的進階用法:解鎖隱藏的力量 Mar 01, 2024 pm 09:10 PM

PHPAPCu(替代php快取)是加速PHP應用程式的opcode快取和資料快取模組。理解其高級功能對於充分利用其潛力至關重要。 1.批次操作:APCu提供批次操作方法,可同時處理大量鍵值對。這對於大規模快取清除或更新非常有用。 //批次取得快取鍵$values=apcu_fetch(["key1","key2","key3"]);//批次清除快取鍵apcu_delete(["key1","key2","key3"]);2 .設定快取過期時間:APCu允許您為快取項目設定過期時間,以便在指定時間後自

如何使用Ajax從PHP方法取得變數? 如何使用Ajax從PHP方法取得變數? Mar 09, 2024 pm 05:36 PM

使用Ajax從PHP方法取得變數是Web開發中常見的場景,透過Ajax可以實作頁面無需刷新即可動態取得資料。在本文中,將介紹如何使用Ajax從PHP方法中取得變量,並提供具體的程式碼範例。首先,我們需要寫一個PHP檔案來處理Ajax請求,並傳回所需的變數。下面是一個簡單的PHP檔案getData.php的範例程式碼:

如何將瀏覽器快取中的影片檔案儲存到本機 如何將瀏覽器快取中的影片檔案儲存到本機 Feb 23, 2024 pm 06:45 PM

瀏覽器快取的影片怎麼匯出來隨著網路的快速發展,影片已經成為人們日常生活中不可或缺的一部分。而在瀏覽網頁時,我們常常會遇到想要儲存或分享的影片內容,但是有時候我們卻無法找到影片檔案的來源,因為它們可能只存在於瀏覽器的快取中。那麼,如何匯出瀏覽器快取中的影片呢?本文將為您介紹幾種常用的方法。首先,我們需要明確一個概念,即瀏覽器快取。瀏覽器快取是瀏覽器為了提高用

See all articles