2011-02-24 191 views
11

在什麼情況下瀏覽器緩存文件?有時它確實,有時並非如此。如果這裏沒有人知道,我的下一步將是測試各種文件格式,文件大小和htaccess場景。在什麼情況下瀏覽器緩存<video>文件?

如果您不知道,您是否可以考慮推薦測試的其他變量?

在此先感謝!

回答

15

以下工作,以指示瀏覽器緩存中的文件。最後一行是使服務器以正確的標頭MIME類型傳送webm文件所必需的。

# Expires is set to a point we won't reach, 
# Cache control will trigger first, 10 days after access 
# 10 Days = 60s x 60m x 24hrs x 10days = 864,000 
<FilesMatch "\.(webm|ogg|mp4)$"> 
Header set Expires "Mon, 27 Mar 2038 13:33:37 GMT" 
Header set Cache-Control "max-age=864000" 
</FilesMatch> 
AddType video/webm .webm 
5

HTML5規範並不嚴格要求瀏覽器必須對緩存視頻文件做什麼 - 它只是表明什麼是「合理的」,因此理論上不同的瀏覽器可能會有不同的行爲。

Web開發人員可以嘗試使用<audio><video>元素這樣的preload屬性來控制視頻緩存:

preload=none用戶可能無法觀看視頻(即最好不要預裝)

preload=metadata的用戶可能會觀看視頻(即更好地只下載有關視頻的信息(大小,持續時間等))

preload=auto用戶很可能會觀看視頻(例如,可能是一個好的ID ea預加載並緩存視頻)

正如我所說的,規範不強制執行此操作,以便瀏覽器可以忽略預加載值(如果他們選擇的話)。例如,如果瀏覽器檢測到連接速度緩慢或不穩定,因此拒絕預加載,但我不知道目前有這樣做的瀏覽器。在裝載屬性

的更多信息是在這裏:http://www.w3.org/TR/html5/video.html#attr-media-preload

+1

感謝您的詳細和深思熟慮的回覆。雖然我可能在我的問題上不清楚。當我說緩存時,我指的是如果用戶返回頁面,則不需要再次下載視頻文件。有時,但並非總是如此。像「它可以在FFX中使用ogg,但在chrome中無處可用」這樣的回答會有幫助,就像「如果將此行放入您的htaccess文件中,它會隨處可見」。謝謝! – Matrym 2011-02-25 02:53:29

+0

啊,我的誤解。在那種情況下,我並不確定,也不知道除了通過反覆試驗外,哪裏可以找到答案。對不起 - 可能不是你所希望的答案。 – tagawa 2011-02-25 07:27:54