當前位置:首頁 » 文件管理 » html頁面緩存設置

html頁面緩存設置

發布時間: 2024-05-16 19:33:29

① html5緩存的問題,如何正確設置

html5緩存正確的設置辦法:

1、啟用緩存

設置方法:
<html manifest="example.appcache">
...
</html>

2、設定緩存訪問的范圍,配置到MANIFEST中:
CACHE MANIFEST
# v1 - 2011-08-13
# This is a comment.
http://www.example.com/index.html
http://www.example.com/header.png
http://www.example.com/blah/blah

② HTML5應用程序緩存Application Cache詳解


什麼是Application Cache
HTML5引入了應用程序緩存技術,意味著web應用可進行緩存,並在沒有網路的情況下使用,通過創建cache manifest文件,可以輕松的創建離線應用。
Application Cache帶來的三個優勢是:
① 離線瀏覽
② 提升頁面載入速度
③ 降低伺服器壓力
而且主要瀏覽器皆以支持Application Cache,就算不支持也不會對程序造成什麼影響
離線存儲技術
HTML5提出了兩大離線存儲技術:localstorage與Application Cache,兩者各有應用場景;傳統還有離線存儲技術為Cookie。
經過實踐我們任務localstorage應該存儲一些非關鍵性ajax數據,做錦上添花的事情;
Application Cache用於存儲靜態資源,緩銀仍然是干錦上添花的事情;
而cookie只能保存一小段文本(4096位元組);所以不能存儲大數據,這是cookie與上述緩存技術的差異之一,而因為HTTP是無狀態的,伺服器為了區分請求是否來源於同一個伺服器,需要一個標識字元串,而這個任務就是cookie完成的,這一段文本每次都會在伺服器與瀏覽器之間傳遞,以驗證用戶的許可權。
所以Application Cache的應用場景不一樣,所以使用也不一致。
Application Cache簡介
Application Cache的使用要做兩方面的工作:
① 伺服器端需要維護一個manifest清單
② 瀏覽器上只需要一個簡單的設置即可
#p#副標題#e#
以例子做說明:
CACHE MANIFEST
CACHE:
# 需要緩存的列表
style1.css
1.jpg
01.js

NETWORK:
# 不需要緩存的
4.jpg
FALLBACK:
# 訪問緩存失敗後,備用訪問的資源,第一個是訪問源,第二個是替換文件*.html /offline.html
2.jpg/3.jpg
復制代碼
首先我這里報了一個錯:
Application Cache Error event: Manifest fetch failed (404)
這個錯誤的原因是:manifest 文件需要配置正確的 MIME-type,即 「text/cache-manifest」。必須在 web 伺服器上進行配置,不同的伺服器不一樣
APPLICATIONCACHE
01.js
02.js
1.jpg
2.jpg
3.jpg
4.jpg
demo.appcache
index.html
style1.css
style2.css
web.config
zepto.js
這樣一來便可以離線應用了,這個時候就算斷網了,那些文件依舊能訪問
這里有一點值得注意,比如這里不帶/index.html他會將「applicationcache/」緩存,其實這個就是index.html
manifest 文件可薯哪槐分為三個部分:
CACHE MANIFEST - 在此標題下列出的文件將在首次下載後進行緩存
NETWORK - 在此標題下列出的文件需要與伺服器的連數友接,且不會被緩存
FALLBACK - 在此標題下列出的文件規定當頁面無法訪問時的回退頁面(比如 404 頁面)
如圖所示,HTML5定義了幾個事件點,但是我們一般不會主動使用js去操作什麼,大多數情況下,我們完全依賴瀏覽器的處理即可。
#p#副標題#e#
尺寸限制
Application Cache的尺寸限制統一在5M,我這里做一個測試:
如所示,兩個css文件依舊超過了5M這個時候
Document was loaded from Application Cache with manifest
index.html:1 Application Cache Checking event
index.html:6 GET
index.html:1 Application Cache NoUpdate event
index.html:11 GET
index.html:12 GET
如所示,style2已經不能緩存了,這個會造成什麼問題呢?
比如我A頻道維護了自己的Application Cache,B頻道也維護了自己的,這個時候A頻道如果使用達到了一個峰值,會導致B頻道所有的緩存失效,所以:
建議Application Cache,存儲公共資源,不要存儲業務資源
一些問題
由更新機制來說,首次更新manifest時,因為頁面載入已經開始甚至已經完成,緩存更新尚未完成,瀏覽器仍然會使用過期的資源;瀏覽器是當Application Cache有更新時,該次不會使用新資源,第二次才會使用。這個時候update事件中執行window.reload事件。
window.applicationCache.addEventListener(updateready, function(){
window.location.reload()
});
由上例可以知道,緩存的不只是顯示定義的文件,比如上例中的applicationcache/時便會默認保存index.html為映射的數據,並且包含demo.appcache文件,很多時候會遇到一次文件更新線上老是不更新,這個時候隨便在manifest配置文件中做一點修改即可更新。
從可用性與易用性來說,Application Cache是值得使用的,但是最好是做靜態資源的緩存,真正要實現離線應用還得花更多的功夫呢!

③ 請教高手,html頁面中的圖片,如何讓瀏覽器緩存至本地

方法很簡單,你把保留網頁歷史的時間改長而且加大緩存目錄的體積就行了,方法就是看瀏覽器頂部,工具,internet選項,這個界面有歷史長度,最多999天,看裡面的「設置」,可以改保存網頁的路徑,以及體積大小。在歷史時間內,比如30天,不需要再次緩存頁面,但是有個問題,就是你如果在線聽歌,看大圖片,如果過多,會導致你的IE緩存很龐大,有可能超出你的IE默認的體積,所以你最好轉移到非系統分區,而且設置體積很大,1G甚至更大,否則超出後默認刪除早期的圖片,歌曲,flash等文件。

④ html5 如何更新離線緩存

需要伺服器。這里用tomcat伺服器來講解。
首先要先把.manifest後綴的文件 的mine類型配置為text/cache-manifest。
一講到tomcat配置,熟悉的朋友自然就會想到web.xml這個文件,沒錯,在文件中加入如下配置就行:
1 <mime-mapping>
2 <extension>manifest</extension>
3 <mime-type>text/cache-manifest</mime-type>
4 </mime-mapping>
然後寫一個xxx.manifest文件,xxx是你自己取的一個名字。這個文件的格式是這樣的:
CACHE MANIFEST

#version 1.5

CACHE:
MyTest.html
CSS/main.css
Javascript/bwH5LS.js
exp-calif-logo.gif
第一行是必須的,它標識這是manifest的配置文件。
#version 1.5
這句是注釋,沒實際的作用,我在這里只是想讓瀏覽器更新緩存文件。因為當這個manifest文件與原來一樣的時候,瀏覽器是不會去重新載入緩存文件的,所以我們可以通過這個注釋,一方面修改版本號,另一方面讓瀏覽器更新緩存。
CACHE:
這行指示出下面的文件是要緩存的。示例中,緩存了當前頁面:MyTest.html,以及一些css和js文件 還有圖片。
還有幾個關鍵字示例中沒提到,就是
NETWORK:
FALLBACK:
NETWORK 指不想緩存的頁面;FALLBACK 是指請求的文件 沒有找到或該文件的伺服器沒有響應時的替代方案,比如我們想請求某個嵌套頁面,但這個頁面的伺服器連接不上了,那麼我可以轉向另外一個指定的頁面。
這是第二步,第三步,只要在<html>標簽中加上manifest的位置就行了:
<html manifest="NAME.manifest">
到這里,就可以實現簡單的離線應用了。
那些緩存的文件放在哪呢?
在chrome上測試,發現它是按自己的機制來分塊保存這些文件的,所以我沒找不到完整的文件。保存的數據在:
C:\Users\jasonling\AppData\Local\Google\Chrome\User Data\Default 裡面,具體怎麼存,筆者還不了解。
火狐上的文件也是按它自己的機制來存的,不過筆者本人用sqlite打開後,找到了緩存文件的具體信息:

⑤ iOS的webView如何實現html的離線緩存

方法一:離線獲取獲取到html代碼。html代碼你可以把他理解成是一個很長的字元串。通過正則表達式把這個html頁面里的所有img標簽url。如果是相對url,就加上host。如果是絕對url,就直接下載。這樣這個頁面里的所有圖片路徑都拿到了。
方法一的獲取img標簽url的正則表達式:
NSString *urlPattern = @"<img[^>]+?src=[\"']?([^>'\"]+)[\"']?";

方法二:通過webview和js 本地程序的交換,獲取到html頁面所有圖片下載地址。
webview和本地程序交互的方法是_detailWebView 。

⑥ 微信公眾號html緩存處理

近期在發版驗證時遇到一個問題,微信公眾號登入後頁面顯示的是老的,強制刷新後,再退出重新登入,仍然顯示的是老的頁面;
經過一番查找得到了解決方案:
(1)公眾號放的菜單地址後加 ?version=1.0.0 每次更新頁面則更新菜單;
但是這樣每次發版還得修改公眾號的菜單,多一步很不方便;
於是和前端一塊嘗試尋找到另一中解決方案:
(2)前端在html的header中加入緩存策略
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="0" />
<meta http-equiv="Cache" content="no-cache" />
這樣就徹底解決了緩存問題;

但是注意,往往遇到此問題時,已經緩存了沒有加緩存策略的html文件,需要清除掉緩存,載入新的帶緩存策略的html文件,將來才會實時更新;但是也不能讓用戶每個都清理緩存啊;
於是就要配合第一種解決方法,在菜單鏈接後面加參數,這樣用戶側會重新load新版本的html(微信菜單設置發布後,有將近10分鍾的延時),這樣配合使用就完美解決了我們的問題;

期間多次嘗試發現,微信的緩存策略和頁面地址的後綴參數相關,使用相同的後綴,在不設置緩存策略下,就能回到對應的版本,很強大,也很雞肋

⑦ html 頁面怎麼對緩存進行設置

根據伺服器系統環節的不同設置方法不一樣

1、在Apache環境下

可以通過在.htaccess文件中添加下面的代碼,設置圖片的HTTP緩存和有效期(需要開啟apache的headers模塊支持):

#.gimhoy.com<FilesMatch".(flv|gif|jpg|jpeg|png|ico|swf)$">HeadersetCache-Control"max-age=3156000"

其中max-age後面這個數字就是設置的緩存有效期(以秒為單位),比如上面的代碼設置了網站的圖片使用為期一年(3156000秒)的HTTP緩存。

2、在Nginx下

可以通過修改nginx.conf配置文件,來修改緩存設置:
location ~* .(flv|gif|jpg|jpeg|png|ico|swf)$ { expires 1y; access_log off; break; }

注意:同樣的方法,可以給js和css文件設置緩存。

熱點內容
資料庫雙引號 發布:2025-01-18 03:10:20 瀏覽:78
學java和php 發布:2025-01-18 03:01:03 瀏覽:451
怎麼開伺服器的埠 發布:2025-01-18 02:54:23 瀏覽:647
別克君越編程 發布:2025-01-18 02:32:24 瀏覽:913
ftp游戲下載網站 發布:2025-01-18 02:09:04 瀏覽:628
python調用另一個文件中的函數 發布:2025-01-18 02:03:54 瀏覽:597
mysql存儲html 發布:2025-01-18 01:57:24 瀏覽:129
雙ip伺服器對網站優化有影響嗎 發布:2025-01-18 01:56:41 瀏覽:246
汽車配置怎麼區分自動擋 發布:2025-01-18 01:53:06 瀏覽:229
加密手機通訊錄 發布:2025-01-18 01:43:58 瀏覽:348