1 頁 (共 1 頁)

[html]如何解決web server CACHE的問題(或proxy)

發表於 : 2008年 11月 27日, 11:21
tim
一般 web server 在處理網頁時, 常常會 cache 網頁的內容, 以增進效能並減少 web server 使用的資源, 但在 html 更新頻繁的狀況下, 往往會造成困擾, 也就是檔案已經更新了, 但是 web server 仍不更新給 client, 即使 client refresh 或 reload 也一樣, (相同的情形也有可能發生在 proxy server 上), 問題的癥結就在於 url 的判定上.

一般 web server 或 proxy 要 cache 網頁, 通常是用 url 來處理, 若是該 url 出現過, 就直接拿 cache output 給 client, 導致上述的狀況, 解決之道就是將 url 後, 加一些無意義的參數 (query string), 並且是隨機產生, 如此一來, web server 就得真的再去讀一次檔案, 就不容易 cache 網頁內容了.

在一般的 html 檔內, 可以透過以下語法進行

代碼: 選擇全部

    <meta http-equiv="Content-Type" content="text/html; charset=shift_jis"> 
    <META HTTP-EQUIV="Pragma" CONTENT="no-cache"> 
    <META HTTP-EQUIV="Cache-Control" CONTENT="no-cache"> 
    <META HTTP-EQUIV="Expires" CONTENT="0"> 
     
    in javascript (reload): 
    <a href=# onclick="window.location.href=window.location.href.substr(0, window.location.href.lastIndexOf('?'))+'?dd='+Math.random();return false;">reload</a> 


以上兩種方法依癥狀嚴重性來使用囉 !!