簡體   English   中英

如何防止瀏覽器使用緩存的圖像?

[英]How to prevent the browser using a cached image?

我正在HTML中創建偽視頻,方法是使用從局域網(IP安全攝像機)上的URL獲得的新“幀”,每秒更新<img>元素的源30次。

在Firefox中,該圖像似乎已被緩存,因此每次我嘗試獲取一個新的“框架”時,它都會顯示啟動腳本后得到的第一個框架。

在WebKit瀏覽器(Chrome和Safari)中,我正在下載的圖像未緩存,因此每隔幾毫秒,“視頻”就會更新一次,看起來就像是實際的視頻。 這就是我在Firefox中想要的。

我無法控制視頻的來源。 我無法添加GET參數來強制重新下載,因為發送給我的圖像在嘗試時會返回為空(服務器必須具有特定設置才能出於安全性原因將其禁用)。

保留此方法時有解決方法嗎? 是否有更好的方法(請記住,我無法控制源-這是觀看視頻的唯一方法!)。

我的劇本 (准備好了-很着急)

只需在圖片網址的末尾添加時間戳或隨機數即可。 這將繞過緩存。 就像是:

url += 'c'+ ~~(Math.random() * 10000);

編輯 -究竟您嘗試了什么方法? 您的腳本使用image.src加載圖像。 您是否嘗試過XHR? 如果有,請發布該代碼。

據我所知,您有兩種選擇:

1)更改標題-可以通過中間服務器完成。 如果您有本地代理或要添加一個本地代理,則可以使用它來篡改標題。 有點過分。

2)XHR-雖然我希望XHR的行為與您目前的方法類似,但不能保證它會。 因此,至少值得進行調查。

將緩存清除參數添加到源地址:

container.src = camerasrc + '/cgi-bin/video.jpg' + '?bust=' + (new Date()).getTime();

暫無
暫無

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

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