iT邦幫忙

0

請問 js, css 預設會保存多久?

  • 分享至 

  • xImage

之前一直沒注意過這問題。一開始自己手按 Ctrl + F5 就好了。後來會在後面加上時間戳當做版號 abc.js?ver=123456。

但還是想請問,如果單純的呼叫,像下面

<script src="/scripts/jquery.min.js"></script>
<script src="/scripts/foo.js"></script>
<script src="/scripts/woo.js"></script>

使用者端會保存多久?

已問過 google,幾乎都是在說如何更新。但我想知道預設會保存多久。按瀏覽器的 F12, 也沒看出什麼。

stackoverflow 也有一篇在問,但有回跟沒回一樣。
https://stackoverflow.com/questions/54358357/how-long-will-cached-css-file-get-updated-in-browser
Browsers ... vary if the content being served doesn't use an HTTP Cache-Control header.
大概是說,如果沒有用 meta 標籤(Cache-Control header),那各家瀏覽器的保留時間不一樣(vary)。

有沒有人知道,Chrome 多久?Firefox多久?

froce iT邦大師 1 級 ‧ 2022-08-16 14:38:02 檢舉
chrome我不清楚,firefox你可以用 about:cache 去觀察,我看到至少會有一天以上。
firefox看about:config裡沒看到可以調的時間。倒是可以調容量。所以我猜是寫死在程式的快取調用策略中。
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

1
kw6732
iT邦研究生 5 級 ‧ 2022-08-16 15:08:26

https://ithelp.ithome.com.tw/upload/images/20220816/20124014aFd70B6oPV.png

答案:由伺服器端控制,某些瀏覽器會在30天清除。

可以由 get http-headers 的工具取得 伺服器端 的設定。

狀態設定:
*public:公開的資源,可以被所有節點暫存
*private:私有的資源,只被允許儲存成使用者的本地快取
*no-cache:本地暫存,但使用前會先詢問過期沒
*no-store:不開快取

不管對方的瀏覽器內要存多久,要控制版本更新才是你的主要問題吧?
在後方增加一個自己可以更動的參數,可以強迫對方更新瀏覽器內的版本,剛剛打完也發現這部分你也已經有提及了。

<script src="/scripts/jquery.min.js?id=123"></script>
<script src="/scripts/foo.js?id=123"></script>
<script src="/scripts/woo.js?id=123"></script>

不知道這兩個部分的回答有沒有切中你想解決的問題?

sieberg iT邦新手 4 級 ‧ 2022-08-19 10:03:36 檢舉

怎麼控制版本我已經知道。現在單純就是想知道沒有任何機制的情況下會保存多久。

1

SERVER標頭宣告->瀏覽器的預設宣告->暫存區的時限

一般得要看這三個。
原則上是伺服器端送過來的最優先。

當然這也不是絕對性。因為基於「本機安全性原則」
本機的瀏覽器一般有最大的優先權限。但大多數是不會去設定的。
一律依照伺服器端為主。

基於上面的說明,我只會告訴你要如何的清除。
這點是不變的。因為緩存的時間因素太多了。

如果你真的有柯南精神可以去查瀏覽器的標頭相關值。及各大瀏覽器的設定。
包含了保存週期、暫存週期...等等等。

所以你問「Chrome 多久?Firefox多久?」
這是沒意義的問題。因為沒有絕對答案。

我要發表回答

立即登入回答