首頁  >  問答  >  主體

如何以程式方式清空瀏覽器快取?

<p>我正在尋找一種方法,以程式方式清空瀏覽器快取。我這樣做是因為應用程式快取機密數據,我想刪除那些當你按下「註銷」。這可以透過伺服器或JavaScript實現。當然,在國外/公共電腦上使用該軟體仍然是不鼓勵的,因為有更多的危險,例如鍵盤記錄器,你只是無法在軟體層面上擊敗。 </p>
P粉419164700P粉419164700445 天前652

全部回覆(2)我來回復

  • P粉990568283

    P粉9905682832023-08-02 11:31:57

    瀏覽器不可能讓你清除它的快取。如果可能的話,這將是一個巨大的安全問題。這很容易被濫用——一旦瀏覽器支援這種“功能”,我就會把它從我的電腦上卸載。

    你能做的就是告訴它不要快取你的頁面,透過發送適當的標題或使用這些元標籤:

    <meta http-equiv='cache-control' content='no-cache'>
    <meta http-equiv='expires' content='0'>
    <meta http-equiv='pragma' content='no-cache'>

    您可能還想考慮關閉表單欄位上的自動完成,儘管恐怕有一種標準方法可以做到這一點(參見這個問題)。

    無論如何,我想指出的是,如果您正在處理敏感數據,則應該使用SSL。如果您不使用SSL,任何可以存取網路的人都可以嗅探網路流量,並且輕鬆看到您的用戶看到的內容。

    使用SSL也使一些瀏覽器不使用緩存,除非明確告知。看看這個問題。

    回覆
    0
  • P粉680487967

    P粉6804879672023-08-02 09:30:01

    這是可能的,你可以簡單地使用jQuery替換引用快取狀態的「meta標籤」與事件處理程序/按鈕,然後刷新,很容易。

    $('.button').click(function() {
        $.ajax({
            url: "",
            context: document.body,
            success: function(s,x){
    
                $('html[manifest=saveappoffline.appcache]').attr('content', '');
                    $(this).html(s);
            }
        }); 
    });

    注意:此解決方案依賴於作為HTML 5規範的一部分實現的應用程式緩存,它還需要伺服器配置來設定應用程式快取清單。它沒有描述一種透過客戶端或伺服器端程式碼清除「傳統」瀏覽器快取的方法,這幾乎是不可能做到的。

    回覆
    0
  • 取消回覆