簡體   English   中英

(如何)我可以指示Chrome / Firefox / IE /…不要緩存特定網站?

[英](How) can I instruct Chrome/Firefox/IE/… not to cache a specific website?

我建立了一個瀏覽器擴展程序,該擴展程序在啟動時會調用Web服務,並從中檢索JSON結果。 JSON結果包含將在擴展的彈出窗口中顯示的數據。 使用准備好的預定更新服務,每天至少更新一次此數據。 此外,數據會在一天中不定期手動更新。

從Web服務檢索的數據不會自動適應所做的更改。 特別是,擴展名從Web服務檢索舊結果。 該Web服務已經過測試,並且始終返回最新結果,因此,這不是服務器端的問題(至少與數據的計算,存儲和提供無關)。

我注意到有時Web服務似乎返回舊結果,然后在刷新頁面后更新這些結果。 我相信這是由於某些客戶端或服務器端緩存機制引起的。

研究主題尚未產生任何有用的資源或材料

我是否可以指示擴展程序不緩存來自Web服務的結果和/或指示服務器不允許/保留緩存的結果?

非常感謝有關此問題的任何建議和/或資源。

一種常用的方法是向您的HTTP GET路徑添加一個隨機擴展名-一個參數,服務器不使用。 這樣,瀏覽器將無法使用緩存的數據,因為它沒有該URL的任何數據。 服務器將簡單地忽略附加參數。

這是一個示例,請在每次調用服務器時更改random參數的值(此示例中為12345)。

// Original URLs
http://www.example.com/myservice
http://www.example.com/myservice?param=data

// With an Additional HTTP Parameter
http://www.example.com/myservice?random=12345
http://www.example.com/myservice?param=data&random=12345

如果您可以控制服務器軟件,則可以將其配置為設置適當的緩存相關HTTP標頭值。 為了防止緩存,您需要設置Cache-Control標頭值和Expires標頭值。 檢查此線程以獲取跨瀏覽器解決方案。 為了不再次將尚未過時的數據傳輸到客戶端,請再次使用ETagLast-Modified標頭值。 有關ETag ,條件請求和HTTP緩存的詳細信息,請參閱HTTP緩存教程HTTP協議規范

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM