HMTL 5のローカルキャッシュ


HTML 5ページアプリケーションでは、アプリケーションCacheオブジェクトがローカルキャッシュを表します.オフラインアプリケーションの開発中にアプリケーションCacheオブジェクトのonUpdateReadyイベントを呼び出すことで、ローカルキャッシュ解放完了更新をモニタできます.ローカルのキャッシュを手動で更新する方法は、次の2つあります.
(1)onUpdateReadyイベントでswapCache()メソッドを呼び出す.
(2)アプリケーションCacheオブジェクトのupdate()メソッドを直接呼び出す.
ローカルでキャッシュを更新すると、アプリケーション・キャッシュ・オブジェクトの他のイベントを呼び出して、ローカル・キャッシュの更新ステータスをリアルタイムで監視できます.
ローカルキャッシュが更新されたかどうかを監視します.コードは次のとおりです.
 
<!doctype html>
<html manifest="test.manifest">
<head>
<meta charset="utf-8">
<title>     </title>
<script type="text/javascript">
function $$(id){
	return document.getElementById(id);
}

function init(){
	window.applicationCache.addEventListener("updateready",function(){
		$$("pStatus").style.display = "block";
		$$("pStatus").innerHTML = "    updateready  d。。"
	},true);
}
	
</script>
</head>

<body onLoad="init();">
<fieldset>
	<legend>  updateready      </legend>
    <p id="pStatus"/>
</fieldset>

</body>
</html>

updatereadyイベントがトリガーされると、ローカルキャッシュが更新されたことを示します.アプリケーション・Cacheオブジェクトのupdateメソッドを呼び出すことで、ローカル・キャッシュを手動で更新できます.呼び出しフォーマットは次のとおりです.
window.applicationCache.update()

更新可能なローカルキャッシュがある場合、このメソッドを呼び出すと、ローカルキャッシュを更新できます.では、更新可能なローカルキャッシュがあるかどうかを監視し、updatereadyイベントで監視するほか、アプリケーション・Cacheオブジェクトの「status」プロパティを呼び出すこともできます.このプロパティには複数の値があり、値が「4」の場合、更新可能なローカルキャッシュがあることを示します.
<!doctype html>
<html manifest="test.manifest">
<head>
<meta charset="utf-8">
<title> update()      </title>
<script type="text/javascript">
function $$(id){
	return document.getElementById(id);
}

function init(){
	if(window.applicationCache.status == 4){
		$$("pStatus").style.display = "block";
		$$("pStatus").innerHTML = "           。。";
	}
}
	
function btnUdp_click(){
	window.applicationCache.update();
	$$("pStatus").style.display = "block";
	$$("pStatus").innerHTML = "      ";	
}
</script>
</head>

<body onLoad="init();">
<fieldset>
	<legend>       ,         !</legend>
    <p id="pStatus"/>
    <p id="pShow">
    	<input id="btnUpd" value="    " type="button" onClick="btnUdp_click()">
    </p>
</fieldset>

</body>
</html>

メソッドswapCache()の機能は、ローカルキャッシュを更新することであり、メソッドupdate()とは次の2点が異なる.
  • ローカルキャッシュを更新するイベントは異なります.メソッドswapCache()はメソッドupdate()よりも早くローカルキャッシュを更新します.
  • トリガイベントは異なります.メソッドswapCache()は、呼び出しを更新するにはupdatereadyイベントでなければなりません.メソッドupdate()はいつでも呼び出すことができます.
  • <!doctype html>
    <html manifest="test.manifest">
    <head>
    <meta charset="utf-8">
    <title> swapCache      </title>
    <script type="text/javascript">
    function $$(id){
    	return document.getElementById(id);
    }
    
    function init(){
    	window.applicationCache.addEventListener("updateready",function(){
    		$$("pStatus").style.display = "block";
    		$$("pStatus").innerHTML = "          ";
    		window.applicationCache.swapCache();	
    		$$("pStatus").innerHTML = "        ";
    	},true);
    }
    	
    </script>
    </head>
    
    <body onLoad="init();">
    <fieldset>
    	<legend>              </legend>
        <p id="pStatus"/>
    </fieldset>
    
    </body>
    </html>

     
    ローカルキャッシュの更新時にトリガーされる他のイベント
    checking:更新の有無を検出中
    downloading:使用可能なキャッシュをダウンロードしています
    noupdate:最小キャッシュ更新なし
    progress:ローカルキャッシュが更新中
    Cached:更新に成功したローカルキャッシュ
    error:ローカルキャッシュ更新中にエラー