`

HMTL5之本地缓存

阅读更多

         在HTML5页面应用中,applicationCache对象表示本地缓存。在开发离线应用的过程中,通过调用applicationCache对象的onUpdateReady事件,可以监测到本地缓存释放完成更新。有如下两种手动更新本地的缓存的方法。

      (1) 在onUpdateReady事件中,调用swapCache()方法。

      (2) 直接调用applicationCache对象的update()方法。

      当本地更新缓存时,可以调用applicationCache对象的其他事件来实时监测本地缓存更新的状态

    监测本地缓存是否更新,代码如下:

 

<!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事件时,标志着对本地缓存进行了更新。通过调用applicationCache对象中的update方法可以手动更新本地缓存,其调用格式如下:

window.applicationCache.update()

 如果有可以更新的本地缓存,调用该方法将可以对本地缓存进行更新。那么监测如何是否有可更新的本地缓存,除通过updateready事件监测外,还可以通过调用applicationCache对象中的‘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()有如下两点不同。

  • 更新本地缓存的事件不一样:方法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:本地缓存更新时出错

 

 

分享到:
评论

相关推荐

    HTML5实现的本地缓存localstorage登录效果实例代码.zip

    HTML5实现的本地缓存localstorage登录效果实例代码.zip

    取URL本地缓存地址.rar

    取URL本地缓存地址.rar

    jsCache:javaScript HTML5本地存储缓存,简单。 简易定时缓存

    javaScript Local Storge高速缓存,简单,简单和定时的高速缓存 如何使用 ? 包括课程 [removed][removed] 要设置缓存的数据,请使用set函数执行此操作,第一个参数为缓存数据的名称,第二个参数为值 Cache.set('...

    ListView展示+上拉刷新下拉加载+本地缓存

    ListView展示+上拉刷新下拉加载+本地缓存,有实际的网络接口为例展示,头尾布局简单的添加了下,eclipse做的

    Html5应用程序缓存(Cache manifest)

    一、作用 离线浏览 – 根据文件规则把资源缓存在本地,脱机依然能够访问资源,联网会直接使用缓存在本地的文件。... 再次载入页面时,便会根据 manifest 中规定的缓存文件使用本地缓存而不是请求服务器资源。 当

    vue日历/日程提醒/html5本地缓存功能

    主要介绍了vue日历/日程提醒/html5本地缓存功能,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下

    聊天系统 V2 (纯缓存无数据库)

    PK利剑:14kb大小、单文件、纯缓存、无需任何数据库、实现踢人、审核发言、普通/VIP1/VIP2/管理员等多角色发言功能,支持框架入任何网页中操作。 测试体验步骤: 1、解压缩系统压缩包,得到Default.asp文件; 2...

    微信小程序学习笔记之本地数据缓存功能详解

    【将数据存储在本地缓存】wx.setStorage 【读取本地缓存】wx.getStorage 以手机号+密码登录为例,把登录成功返回的token值存储在本地缓存中,然后读取缓存中的token: login.php: &lt;?php header(Content-type:...

    详解浏览器缓存和webpack缓存配置

    强缓存:也称为本地缓存,不向服务器发送请求,直接使用客户端本地缓存数据 协商缓存:也称304缓存,向服务器发送请求,由服务器判断请求文件是否发生改变。如果未发生改变,则返回304状态码,通知客户端直接使用...

    浅谈利用缓存来优化HTML5 Canvas程序的性能

    主要介绍了浅谈利用缓存来优化HTML5 Canvas程序的性能,并且作者给出了使用缓存以及离屏Canvas后性能较原程序的提升对比,需要的朋友可以参考下

    HTML5 manifest离线缓存的示例代码

    HTML5 使用 ApplicationCache 接口解决了由离线带来的部分难题。 使用缓存接口可为您的应用带来以下三个优势: 离线浏览 – 用户可在离线时浏览您的完整网站 速度 – 缓存资源为本地资源,因此加载速度较快。 ...

    JS localStorage实现本地缓存的方法

    代码如下:&lt;!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML...本地缓存&lt;/title&gt; [removed] var strKey = “strKey”; var storage = window.localStorage; function onStart(){ if(storage.getItem(strKey)!=null){

    html5本地存储之localstorage 、本地数据库、sessionStorage简单使用示例

    html5的一个非常cool的功能,就是web storage,类似于之前的cookie,不过与之不同的是,web storage 拥有本地5兆的容量可以存储,而cookie却只有4K,这是完全不能比的优势。webstrange又分为:localstorage,...

    LocalStorage-Application-Cache:HTML5 本地存储和应用程序缓存演示

    本地存储-应用-缓存 HTML5 本地存储和应用程序缓存演示 对于应用程序缓存功能,演示文件必须托管在服务器上。 本地存储将直接从文件系统工作。

    HTML5用户指南

    一个关于html5的技术讲解文档,主要目录如下: 第1章 主要结构  [head]  使用新的html 5结构化元素  使用css样式化html 5  何时使用新的html 5结构化元素  小结 第2章 文本  构造主要内容区域  添加博客...

    HTML5离线缓存Manifest是什么

    2、更快的加载速度,缓存在本地访问速度自然更快; 3、减轻服务请求压力,文件缓存后不需要再次请求,只需要请求需要更新的文件。 如何使用? XML/HTML Code复制内容到剪贴板 &lt;!DOCTYPE HTML&gt;  &lt;html ...

    local-cache:本地缓存

    本地缓存 本地缓存 从 Google Code 项目导入 我不是作者,只是想在 Google Code 关闭时保存脚本 #原始自述文件 在 HTML 5 中,我们得到了 localStorage,这是一种在本地存储名称/值对的快速简便的方法。 但是,与 ...

    两次请求相同的一个URL,会产生缓存问题。

    两次请求相同的一个URL,会产生缓存问题。 博文链接:https://weiye.iteye.com/blog/100470

    Android开发之删除项目缓存的方法

    本文实例讲述了Android开发之删除项目缓存的方法。分享给大家供大家参考,具体如下: 如何删除项目的缓存: getCacheDir()能够得到当前项目的缓存地址 在项目中经常会使用到WebView 控件,当加载html 页面时,会在/...

Global site tag (gtag.js) - Google Analytics