`

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:本地缓存更新时出错

 

 

分享到:
评论

相关推荐

    h5 本地缓存

    在现代Web开发中,HTML5(H5)引入了许多新的特性和功能,其中之一就是本地缓存机制,这对于提升用户体验和优化网页性能具有重要意义。本文将深入探讨H5的本地缓存技术,包括其原理、使用场景、优势以及如何在实践中...

    延时加载+静态资源本地缓存

    "延时加载+静态资源本地缓存"是两种非常有效的技术手段,它们能够帮助我们实现这一目标。本篇文章将详细探讨这两种策略,以及如何将它们应用于实际项目中。 首先,让我们来看看静态资源本地缓存。静态资源通常包括...

    Android WebView加载网页以及本地图片缓存问题

    本文将深入探讨如何使用WebView加载网页以及本地图片,并解决缓存问题。 一、WebView的基本使用 1. 初始化WebView:首先,我们需要在布局XML文件中添加WebView组件,并在对应的Activity或Fragment中找到该组件。...

    取URL本地缓存地址.rar

    3. **搜索缓存文件**:根据URL的哈希值,源码会搜索缓存目录下的文件,寻找与之对应的本地缓存副本。 4. **读取和解析缓存信息**:找到缓存文件后,源码可能还涉及到读取缓存元数据(如文件大小、最后修改时间等)...

    本地缓存JSCSS.zip

    这种技术被称为本地缓存,它在现代Web应用中被广泛使用,特别是在离线应用和性能优化方面。 首先,我们需要理解localStorage。localStorage是HTML5引入的一种持久化本地存储机制,它允许Web应用程序在用户的浏览器...

    html5离线缓存简单demo

    HTML5离线缓存,也称为App Cache,是HTML5引入的一种增强网页应用程序离线运行能力的技术。它允许开发者将一部分网页资源(如HTML、CSS、JavaScript、图片等)存储在本地,使得用户在离线状态下依然能访问这些页面,...

    网页缓存到本地.zip

    2. **监听网络请求**:通过WKWebView的`WKNavigationDelegate`,可以在加载开始前拦截请求,决定是否从本地缓存读取,或者取消请求。 3. **手动缓存**:对于需要缓存但不支持HTTP缓存的资源,可以使用URLSession...

    html5前端浏览器离线缓存

    之后,即使用户在网络不稳定的环境下,浏览器也能从本地缓存中加载这些资源。 然而,需要注意的是,离线缓存有一定的局限性。首先,更新管理较为复杂,因为manifest文件的更改并不会自动触发已缓存资源的更新,需要...

    页面的缓存与不缓存设置及html页面中meta的作用

    当浏览器或缓存服务器请求资源时,会根据这个时间与本地缓存版本进行比较。 4. **Expires**: 定义了资源的过期时间,同样以GMT格式给出。如果当前时间超过这个时间,浏览器将认为资源过期,需要重新获取。 在实际...

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

    在“HTML5实现的本地缓存localstorage登录效果实例代码.zip”这个压缩包中,我们可以期待找到一个展示如何利用Local Storage来实现在用户登录后保持登录状态的示例。这个实例对于开发者来说非常有价值,因为它能帮助...

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

    在本项目中,"ListView展示+上拉刷新下拉加载+本地缓存"的实现,意味着开发者旨在提供一个功能丰富的用户界面,不仅能够加载初始数据,还支持用户通过上拉操作加载更多内容(下拉加载),同时对数据进行本地缓存,以...

    HTML5离线缓存技术 附源码.我们知道h5多了很多新技术,其中之一便是可以离线缓存数据,这样当网络断了时,仍然可以浏览网页

    当网络断开时,浏览器会从本地缓存中加载这些资源,从而实现离线访问。 2. **Application Cache API** Application Cache API 是HTML5提供的一种机制,用于管理离线缓存。它包括四个主要的状态:UNCACHED、IDLE、...

    一个可以将静态资源jscss缓存到本地localStorage的小工具

    标题中的“一个可以将静态资源jscss缓存到本地localStorage的小工具”指的是一个JavaScript应用程序,它的主要功能是帮助开发者将网站的静态资源,如JavaScript(js)和样式表(css)文件,存储在用户的浏览器本地...

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

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

    html5应用缓存_动力节点Java学院整理

    一旦网络断开,浏览器将从本地缓存中加载这些资源,而不是尝试从服务器重新获取。 另一个优势是性能提升,因为缓存的资源可以直接从本地读取,避免了网络延迟,从而加快页面加载速度。此外,由于减少了对服务器的...

    WEB开发 之 HTML 5 应用程序缓存.docx

    HTML5的应用程序缓存,也称为App Cache,是一种强大的特性,允许Web应用程序在离线状态下仍能正常运行。这个特性通过创建一个名为manifest的文件,将特定的网页资源预先下载并存储在本地,以便在没有网络连接时使用...

    Html离线缓存webview配置详细

    ### Html离线缓存WebView配置详解 在移动应用开发中,使用WebView加载网页或本地HTML内容是一种常见的做法。为了提高用户体验、减少网络流量消耗以及增强应用的可用性,合理配置WebView中的离线缓存机制变得尤为...

    突袭HTML5之Javascript API扩展5—其他扩展(应用缓存/服务端消息/桌面通知)

    应用缓存是HTML5离线存储的一种方式,允许开发者将静态资源(如HTML、CSS、JavaScript文件等)缓存到用户的本地,以便在网络不可用时仍能访问应用。启用应用缓存的方法是在HTML文档的`&lt;html&gt;`标签中添加`manifest`...

    firefox缓存提取

    2. 故障排除:如果网页加载异常,检查缓存可以帮助确定问题是否出在本地,比如是否因为某些资源未正确下载导致。 3. 数据恢复:在某些情况下,网页上的信息可能已被删除,但它们可能仍存在于缓存中,使用...

    使用jquery-mobile+html5实现android本地通讯录

    HTML5则引入了许多新特性,其中包括Web存储(Web Storage)和离线缓存(App Cache),这些都为本地数据操作提供了可能。特别是Web SQL Database或IndexedDB,它们允许在浏览器中存储大量结构化数据,可以用于备份或...

Global site tag (gtag.js) - Google Analytics