HTML 5オフラインキャッシュアプリケーションCacheは、iframeを介してリモートサーバファイルを直接キャッシュします.

3706 ワード

数日の研究を通じてHMTL 5のオフラインキャッシュ、ネット上の資料はたくさん調べて、本をめくっても読んで、振り回されてやっとできました.次は私の理解です.初心者に手伝ってほしいです.
 
一、Cache Manifestとは
ところで、Web開発関係者として、cacheという言葉を耳にしたり、見たりすることは少なくありません.はい、前述したように、キャッシュのメカニズムです.それは1つを通過することができます.manifestファイルは、キャッシュが必要なファイルまたはネットワークキャッシュを維持しなければならないファイルを構成します.ポイントはこれですmanifestファイル、具体的にはGoogleでいいですが、簡単に今知りたいことを整理してあげます.
 
MIME TYPE:text/cache-manifest
あなたが作成する必要があります:NAME.manifest
役割:主にキャッシュが必要なファイルを構成します.
 
二、testを作成する.manifestファイル
CACHE MANIFEST
#version 5.0
#直接キャッシュされたファイル
 CACHE:
#絶対パスも相対パスも可能
js/initial.js
js/keyevent.js
js/uianimate.js
js/jquery.min.js
loading.gif
bg.jpg
jquery-mini-1.8.2.js
#時間オンラインで必要なファイル*番号は、上のキャッシュファイル以外はオンラインアクセスです.
NETWORK:
*
#代替案
FALLBACK
online.html off.html
三、indexをあげる.hmtlラベルにmanifestプロパティを追加:

index.hmtlページにはいくつかのイベントを書くことができます
 
//手動でwindowを更新する.applicationCache.update();
applicationCache.onchecking = function(){
//manifestファイルが存在するかどうかを確認する
 
}
applicationCache.ondownloading = function(){
//manifestまたはmanifestファイルがあることを確認
//更新したらダウンロード
//キャッシュが必要なファイルがリクエスト時にサーバが戻ってきたとしても
}
 
applicationCache.onnoupdate = function(e){
//戻る304は更新されていないことを示し、ブラウザにローカルファイルを直接使用することを通知する
}
 
applicationCache.onprogress = function(){
//ダウンロード時に周期的にトリガーされ、それを通して
//ダウンロードしたファイル数の取得
}
 
applicationCache.oncached = function(){
//ダウンロード終了後にトリガーされ、キャッシュが成功したことを示す
}
 
applicationCache.onupdateready = function(){
//2回目の読み込み、manifestが更新された場合
//ダウンロード終了時にトリガー
//onchchedをトリガーしない
alert(「ローカルキャッシュが更新中...」);
if(confirm(「更新ファイルを再読み込みするかどうか」)
  applicationCache.swapCache();//最新バージョンのキャッシュリストが取得され、リソースが正常にダウンロードされ、最新バージョンのキャッシュが更新されました.
  location.reload();
  }
}
//インベントリ5手動更新キャッシュ
//if (window.applicationCache.status == window.applicationCache.UPDATEREADY) { window.applicationCache.update(); }
 
applicationCache.onobsolete = function(){
//ファイルが見つからず、404または401に戻るとトリガーされます
}
 
applicationCache.onerror = function(){
//オフラインストレージに関するその他のエラー
}
四、発生した問題
上記の方法でキャッシュできますが、この場合はtestです.manifestファイルとキャッシュするファイルは同じ項目の下にあります.
今問題なのは、ローカルファイルにアクセスしてindexをキャッシュすることです.html関連のファイル.
ローカルファイルhtmlローカルにはtestがありませんmanifest
私はloadingにいたいと思っていましたhtmlページは次のように設定されています.
これではキャッシュできません
五、ローカルファイルを動的にキャッシュする方法
loading.htmlページにiframeタグSRCを付けるとサーバファイルCacheを指す.html
<html id="html" manifest='test.manifest'>
<head>
    <title>loading</title>
     
</head>
<body>
     
</body>
<script type="text/javascript">
	var url=location.href.split("mac=");
	url=url[1].split("&");
	var mac=url[0];
	var user=url[1].split("user=")[0];
	applicationCache.onupdateready = function(){
	   //     ,  manifest    http://172.249.0.89:8081/ftp/sangsang/
	   //         
	   //   onchched
	   alert("         。。。");
	   if(confirm("           ")){
		   applicationCache.swapCache();//           ,        ,         
		   location.reload();
	   }
	   localStorage.setItem("mac", mac);
	   localStorage.setItem("user"  , user);
	  
	} 
</script>
</html>

このようにして动态のページをキャッシュすることができて、书いて书いてはっきり言えないと感じて、もし何か知らないことがあるならば私のQQ 463968565をプラスすることができます