×

深圳网站建设—APP开发—网站制作—小程序开发_博纳网络公司

0755 -
82538016
82560826
网站制作资讯

APP开发公司关于离线缓存的解决方案

文章编辑:网站建设 文章来源:APP开发 浏览量:

  APP开发公司关于离线缓存的解决方案,深圳APP开发公司提醒传统的Web应用必须建立在联网的基础之上,HTML5新增了一项功能,为离线Web应用的开发提供了可能性。假设用户使用在线的记事本记录信息,忽然网络中断,对于传统的应用来说用户很可能会丢失先前书写的内容。
  如果使用离线Web功能开发的应用,用户可以继续离线添加笔记,待网络重新连接后将离线数据同步至线上服务。听到这里,APP开发人员一定会对这个功能充满好奇,在开发一个离线应用时,开发者一般会综合使用多种功能,如离线资源缓存的文件列表Manifest文件、联网在线状态的检测、离线状态下的本地数据存储,这几种功能缺一不可。
  深圳APP开发公司本章将会介绍离线Web应用相关的方法接口,同时让读者了解Manifest文件的使用,最后通过例子说明HTML5开发离线应用的方法。5.1 离线缓存应用本节介绍HTML5离线缓存基本应用,包括离线缓存API简介、使用Manifest方法、使用ApplicationCacheAPI方法以及如何搭建一个简单的离线APP。
开发APP时关于离线缓存API简介
  为了实现离线存储功能,HTML5提供了Web存储相关的API,即WebStorage。WebStorage包括LocalStorage和SessionStorage两部分,可用于对离线数据的短暂性或永久性存储。另外,HTML5另外还提供了一套基于关系型的数据库WebSQLDatabase,可以支持页面上复杂数据的离线存储,例如可以存储用户电子邮件信息、消费账务流水信息等,同时WebSQLDatabase还加入了传统数据库的事务概念,使得多窗口操作可以保持数据一致性。
  WebSQLDatabase数据库是基于SQLite开发的,与WebStorage中的LocalStorage相同。最后一个也是最为强大的功能即IndexedDB。IndexedDB是HTML5推出的一种轻量级的NoSQL数据库,即常说的非关系型数据库。与传统的关系型数据库相比,NoSQL数据库具有易扩展、快速读写、成本低廉等特点,HTML5的IndexedDB同时还包含了常见的数据库构造,如事务、索引、游标等,在API的使用上分为同步和异步两种形态。下面通过一个简单的示例介绍IndexedDB的使用,代码如下:
【代码5-1】
01 <! DOCTYPE html> 02 < html> 03 < body></ body> 04 < script type=" text/ javascript"> 05 var request = indexedDB. open(' Html5IndexedDB', 2); // 创建 一个 数据库 06 request. onerror = function( e) { console. log( e); }; // 监听 错误 事件 07 request. onupgradeneeded = function( event) { //
监听 事务 事件 08 var db = event. target. result; // 获取 数据库 对象 09 var objectStore = db. createObjectStore(" users", { keyPath: "html5" }); // 创建 对象 存储 空间 存放 用户 信息 10 objectStore. createIndex(" name", "name", { unique: false }); // 创建 索引 来 通过 name 搜索 客户 11 objectStore. createIndex(" id", "id", { unique: true }); // 创建 索引 来 通过 email 搜索 客户 12 objectStore. add({ html5:' 1' ,name : ' 小 王 ' , sex :' 女 ', id:' 3323' ,age: 23}); // 存入 一条 用户 信息 数据 13 }; 14 </ script> 15 </ html>
将代码保存至以html为后缀的文件内,部署在Web服务器上,如Apache、IIS、Nginx等,使用最新的Chrome浏览器打开文件,然后打开Chrome浏览器的开发者工具,查看缓存内容,效果如图5.1所示。
点击左侧列表中的Html5IndexedDB项,显示数据库中的插入信息,效果如图5.2所示。
点击左侧列表中的users项,展开数据库中users键的存储信息,同时右侧区域出现对应键值的相关存储数据,效果如图5.3所示。
示例代码中监听的upgradeneeded事件在每次新建数据库结构时触发,当再次打开数据库时不触发该事件,而触发success事件。方法createObjectStore用于创建对象的存储空间,在示例中请求申请1个名为“users”的对象空间,同时传递的第2个参数保证了存储空间中每个单独的对象都是唯一的,被存储于空间中的所有对象都必须存在于“html5”中。
  另外,还可以看到使用了方法createIndex,用于创建数据库索引。示例中对“name”和“id”两个属性添加了索引,但在unique属性上稍有不同,“id”对应的unique为true,表示该键值所存储的数据具有唯一性,无法插入重复数据,而“name”的unique为false,表示允许插入的用户信息数据相同。好了,APP开发公司本文关于“
关于离线缓存的解决方案”的相关APP程序开发知识就分享到这里,谢谢关注,博纳网络编辑整理。
 

当前文章链接:/construction/appkaifa/3153.html
如果您觉得案例还不错请帮忙分享:

[声明]本网转载网络媒体稿件是为了传播更多的信息,此类稿件不代表本网观点,本网不承担此类稿件侵权行为的连带责任。故此,如果您发现本网站的内容侵犯了您的版权,请您的相关内容发至此邮箱【qin@198bona.com 】,我们在确认后,会立即删除,保证您的版权。