基于混合模式移动应用的本地存储数据的方法

文档序号:10580189阅读:283来源:国知局
基于混合模式移动应用的本地存储数据的方法
【专利摘要】本发明提供一种基于混合模式移动应用的本地存储数据的方法,利用HTML5的本地存储方式localStorage实现对数据的写入、读取以及删除的管理。根据数据的类型进行存储配置;对新添加数据条目可自己设定唯一id或者由id生成器生成唯一的id,并由id记录器记录该类型数据的所有id。修改已存数据条目根据id和数据类型找到其在本地存储器中的位置并修改。读取已存数据条目根据其id和数据类型获取到值。读取一组数据条目根据数据类型和关键字或父id从id记录器筛选出id并根据id依次读取数据条目。删除已存数据条目根据数据类型和id通知id生成器和记录器,并从本地存储器中删除记录。本发明可提高数据写入、读取的效率。
【专利说明】
基于混合模式移动应用的本地存储数据的方法
技术领域
[0001]本发明涉及互联网网页技术领域,特别是一种基于混合模式移动应用的本地存储数据的方法。
【背景技术】
[0002]浏览器中最早的数据存储方式是Cookie,其特点是容量太小,只有4KB且只能存入字符串;微软的IE(Internet Explorer)浏览器支持的UserData,使用save和load方法将存储区数据保存在缓存中,相比Cookie,具有动态性和更大的存储容量,但其仅局限于IE浏览器;Flash Shareobject可以跨浏览器且存储空间是Cookie的25倍,可以满足一定的需求;Googl e推出的Gear s将数据存储在SQLi te数据库中并且数据可通过SQL命令获得,这种方式需要安装额外的插件。以上的几种方式不能方便快捷的存储大量的数据。
[0003]HTML5是下一代HTML,在HTML5中,对于不同的网站数据存储于不同的区域,并且一个网站只能访问其自身的数据ATML5使用Javascr ipt来存储和访问数据。本地数据存储是HTML5的window对象(窗口对象)的一个属性,包括local Storage (本地存储方法)和sess1nStorage(会话存储方法)方法。使用1calStorage方法存储的数据没有时间限制,sess1nStorage方法对一个sess1n (会话)进行存储,浏览器关闭后,数据会一同被删除。主流浏览器以及 android 2.0+、iphone 2.0+都支持 local Storage。local Storage 的官方建议存储容量是每个网站5MB,目前的浏览器都是5MB,已经足够使用。
[0004]Hybrid App(混合模式移动应用)是介于web-app(网页应用)和native-app(本地应用)之间的app,兼具native-app的良好用户体验的优势和web-app的使用HTML5跨平台开发低成本的优势。1calStorage是Hybrid App的较佳的本地存储方式。
[0005]1calStorage存储数据是键值对操作,其是给window.1ocalStorage添加一个属性也即添加key,同时提供了几种方法以便操作数据,包括set Item、get Item、remove Item、clear以及key,分别对应着写入、读取、删除、清空以及读键。如果没有一定的存储规则,数据会散乱的存于内存中,写入、读取的效率都会比较低。

【发明内容】

[0006]本发明的目的在于克服现有技术中存在的不足,提供一种基于混合模式移动应用的本地存储数据的方法,用于管理数据的写入、读取和删除,以提高写入、读取的效率。本发明采用的技术方案是:
一种基于混合模式移动应用的本地存储数据的方法,包括下述步骤:
步骤101,添加新类型数据之前,需要对存储的数据进行存储配置并且将配置的结果进行存储,配置的结果是js对象,该js对象的属性有id和分组;id的属性包括:1d类型,id的前缀以及是否需要id生成器,其中在需要id生成器的情况下才设定id的类型和前缀,id的类型分为:第一种id类型即前缀+编号和第二种id类型即父id+前缀+编号;分组的属性包括:分组类型和键key,分组类型的值有:a和b,分别的含义是按照属性键key的值分组和按照父id分组,当分组类型值为a时需要设定键key的值;存储配置的信息需要调用1calStorage公开的setltem方法存储到本地存储器中;
id生成器根据存储配置设定的id的类型和前缀生成唯一的id;id记录器根据存储配置设定的分组情况记录所存数据条目id,如果分组的分组类型属性值为a,则以分组的属性键key的值为键,第一种id类型的id列表为值,构成键值对;如果分组的分组类型属性值为b,需要以父id为键,第二种id类型的id列表为值构成键值对;
步骤102,针对该类型的数据添加新数据条目:调用1calStorage公开的getltem方法读取该类型数据的存储配置信息;如果需要启动id生成器则启动,根据数据的类型和存储配置在需要自动生成id情况下由id生成器生成唯一的id;否则需要人为提供数据条目唯一的id;
读取该类型数据的id记录器的记录情况,如果没有记录则根据存储配置的分组情况,按照步骤101中的方法创建键值对并由id记录器记录保存;如果有记录,则由id记录器对键值对的id列表中添加新的数据条目id;
由数据条目id和数据类型拼接成该数据条目的键名,调用localStorage公开的setltem方法将该数据条目的键值写到本地存储器中。
[0007]步骤103,修改已存数据条目时,给出id、数据类型以组成键名,以及给出数据条目新的键值,调用1calStorage公开的setltem方法将键值写到本地存储器中;
步骤104,读取已存数据条目时,根据id、数据类型以组成键名调用localStorage公开的getltem方法读取到键值;
步骤105,读取一组数据条目时,通过id记录器根据数据类型和存储配置中的分组类型,获取到一组数据条目的id,从而调用local Storage公开的getltem方法即定位并读取到一组已存数据条目;
步骤106,删除已存数据条目时,根据数据类型和id,通知id生成器记录被删除的id,从而该id能够重新被分配,通知id记录器从记录中删除该数据条目的id,并调用1calStorage公开的remove Item方法从内存中删除该条记录。
[0008]进一步地,
步骤101中,当不需要id生成器的情况下,则分组的分组类型不设置,数据记录的id人工设定并以数组形式由id记录器记录存储;调用local Storage公开的setltem方法写到本地存储器中。
[0009]本发明的优点在于:有效管理数据的写入、读取和删除,以提高写入、读取的效率。
【附图说明】
[0010]图1为本发明的逻辑图。
【具体实施方式】
[0011 ]下面结合具体附图和实施例对本发明作进一步说明。
[0012]参考图1,为本发明【具体实施方式】的本地存储数据的逻辑示意图,包括存储配置(setting)、id生成器、id记录器、添加新数据条目(add)、修改已存数据条目(set)、读取已存数据条目(get)、读取一组数据条目(getList)、删除已存数据条目(Remove),以此实现有序、方便的读写本地存储器的数据。
[0013]步骤101,添加新类型数据之前,需要对存储的数据进行存储配置并且将配置的结果进行存储,配置的结果是js对象,该js对象的属性有id和分组(group) ; id的属性包括:type、prefix和gen,他们的含义分别是id类型,id的前缀以及是否需要id生成器,其中在需要id生成器的情况下才设定id的类型和前缀,id的类型分为:第一种id类型前缀+编号和第二种id类型父id(parent Id)+前缀+编号;分组(group)的属性包括:分组类型(type)和键key,分组类型(type)的值有:a和b,分别的含义是按照属性键key的值分组和按照父id(parentld)分组,当分组类型(type)值为a时需要设定键key的值。存储配置的信息需要调用1calStorage公开的setltem方法存储到本地存储器中。
[0014]具体的,id生成器根据存储配置设定的id的类型和前缀生成唯一的id,其中id的类型分为:前缀+编号和父id(parentld)+前缀+编号;id记录器根据存储配置设定的分组情况记录所存数据条目id,如果分组(group)的分组类型(type)属性值为a,则以分组(group)的属性键key的值为键,第一种id类型的id列表为值,构成键值对;如果分组(group)的分组类型(type)属性值为b,需要以父id(parentld)为键,第二种id类型的id列表为值构成键值对;当gen表明不需要id生成器的情况下,则分组(group)的分组类型(type)不设置,数据记录的id人工设定并以数组形式由id记录器记录存储;
步骤102,在设置好存储配置后,该类型的数据可以添加新数据条目,调用1calStorage公开的get Item方法读取该类型数据的存储配置信息;如果需要启动id生成器则启动,根据数据的类型和存储配置在需要自动生成id情况下由id生成器生成唯一的id;否则需要人为提供数据条目唯一的id;
读取该类型数据的id记录器的记录情况,如果没有记录则根据存储配置的分组情况,按照步骤101中的方法创建键值对并由id记录器记录保存;如果有记录,则由id记录器对键值对的id列表中添加新的数据条目id;
由数据条目id和数据类型拼接成该数据条目的键名,调用localStorage公开的setltem方法将该数据条目的键值写到本地存储器中;
步骤103,修改已存数据条目时,给出id、数据类型以组成键名,以及给出数据条目新的键值,调用1calStorage公开的setltem方法将键值写到本地存储器中;
步骤104,读取已存数据条目时,根据id、数据类型以组成键名调用localStorage公开的getltem方法读取到键值;
步骤105,读取一组数据条目时,通过id记录器根据数据类型和存储配置中的分组类型,获取到一组数据条目的id,从而调用local Storage公开的getltem方法即可快速的定位并读取到一组已存数据条目;
步骤106,删除已存数据条目时,根据数据类型和id,通知id生成器记录被删除的id,从而该id能够重新被分配,通知id记录器从记录中删除该数据条目的id,并调用1calStorage公开的remove Item方法从内存中删除该条记录。
[0015]本发明涉及的术语解释:js对象:JavaScript 对象。
[0016]本文中的localStorage专指【背景技术】中提及的“本地数据存储是HTML5的window对象(窗口对象)的一个属性,包括local Storage (本地存储方法)和sess1nStorage (会话存储方法)方法。”中的localStorage(本地存储方法)。
[0017] set I tem、get I tem、removeI tem、clear 以及 key,分别对应着1calStorage (本地存储方法)中的写入、读取、删除、清空以及读键。
【主权项】
1.一种基于混合模式移动应用的本地存储数据的方法,其特征在于,包括下述步骤: 步骤101,添加新类型数据之前,需要对存储的数据进行存储配置并且将配置的结果进行存储,配置的结果是js对象,该js对象的属性有id和分组;id的属性包括:1d类型,id的前缀以及是否需要id生成器,其中在需要id生成器的情况下才设定id的类型和前缀,id的类型分为:第一种id类型即前缀+编号和第二种id类型即父id+前缀+编号;分组的属性包括:分组类型和键key,分组类型的值有:a和b,分别的含义是按照属性键key的值分组和按照父id分组,当分组类型值为a时需要设定键key的值;存储配置的信息需要调用1calStorage公开的setltem方法存储到本地存储器中; id生成器根据存储配置设定的id的类型和前缀生成唯一的id; id记录器根据存储配置设定的分组情况记录所存数据条目id,如果分组的分组类型属性值为a,则以分组的属性键key的值为键,第一种id类型的id列表为值,构成键值对;如果分组的分组类型属性值为b,需要以父id为键,第二种id类型的id列表为值构成键值对; 步骤1 2,针对该类型的数据添加新数据条目:调用I oca I Storage公开的ge 11 tem方法读取该类型数据的存储配置信息;如果需要启动id生成器则启动,根据数据的类型和存储配置在需要自动生成id情况下由id生成器生成唯一的id;否则需要人为提供数据条目唯一的id; 读取该类型数据的id记录器的记录情况,如果没有记录则根据存储配置的分组情况,按照步骤101中的方法创建键值对并由id记录器记录保存;如果有记录,则由id记录器对键值对的id列表中添加新的数据条目id; 由数据条目id和数据类型拼接成该数据条目的键名,调用localStorage公开的setltem方法将该数据条目的键值写到本地存储器中。2.如权利要求1所述基于混合模式移动应用的本地存储数据的方法,其特征在于,还包括下述步骤: 步骤103,修改已存数据条目时,给出id、数据类型以组成键名,以及给出数据条目新的键值,调用1calStorage公开的setltem方法将键值写到本地存储器中; 步骤104,读取已存数据条目时,根据id、数据类型以组成键名调用localStorage公开的getltem方法读取到键值; 步骤105,读取一组数据条目时,通过id记录器根据数据类型和存储配置中的分组类型,获取到一组数据条目的id,从而调用local Storage公开的getltem方法即定位并读取到一组已存数据条目; 步骤106,删除已存数据条目时,根据数据类型和id,通知id生成器记录被删除的id,从而该id能够重新被分配,通知id记录器从记录中删除该数据条目的id,并调用1calStorage公开的remove Item方法从内存中删除该条记录。3.如权利要求1所述基于混合模式移动应用的本地存储数据的方法,其特征在于, 步骤101中,当不需要id生成器的情况下,则分组的分组类型不设置,数据记录的id人工设定并以数组形式由id记录器记录存储;调用local Storage公开的setltem方法写到本地存储器中。
【文档编号】G06F17/30GK105956140SQ201610312684
【公开日】2016年9月21日
【申请日】2016年5月12日
【发明人】孙文明, 李 浩, 姜天蛟, 奚相恺
【申请人】无锡威泰迅电力科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1