CN110389781B - 基于版本控制的Localstorage缓存实现方法、装置及存储介质 - Google Patents
基于版本控制的Localstorage缓存实现方法、装置及存储介质 Download PDFInfo
- Publication number
- CN110389781B CN110389781B CN201910469797.2A CN201910469797A CN110389781B CN 110389781 B CN110389781 B CN 110389781B CN 201910469797 A CN201910469797 A CN 201910469797A CN 110389781 B CN110389781 B CN 110389781B
- Authority
- CN
- China
- Prior art keywords
- version
- key value
- localtorage
- current version
- new key
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 50
- 230000015654 memory Effects 0.000 claims description 26
- 230000002159 abnormal effect Effects 0.000 claims description 13
- 238000013500 data storage Methods 0.000 abstract description 4
- 230000008569 process Effects 0.000 description 13
- 230000006870 function Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 3
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000012550 audit Methods 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 235000014510 cooky Nutrition 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 206010022000 influenza Diseases 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9574—Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computer Security & Cryptography (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及数据处理技术领域,提出一种基于版本控制的Localstorage缓存实现方法、装置及存储介质,方法包括:S110:获取待存储的web项目版本的当前版本号,并判断当前版本号是否超出与web项目相关的版本列表的预设阈值;S120:当当前版本号在web项目相关的版本列表的预设阈值范围内时,对当前版本号及对应的KEY值进行组合,获取与当前版本号对应的新KEY值;S130:将新KEY值存储在Localstorage中;S140:判断新KEY值是否存储成功,并当新KEY值存储失败时,自动减小预设阈值;S150:循环执行步骤S140,直至当前版本的新KEY值存储成功。本发明能够为Localstorage提供多元化的存储方案,解决历史Localstorage相互影响的问题,并提高web项目Localstorage数据存储的向下兼容性及稳定性。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种基于版本控制的Localstorage缓存实现方法、装置及计算机可读存储介质。
背景技术
自HTML5推出Localstorage以来,Localstorage在前端领域得到了广泛的应用,其具有永久存在的特性,只能手动清除,或者在手机系统内存不足的情况下强制清除部分应用的Localstorage等特殊情况。
目前,Localstorage主要用于将第一次请求的数据直接存储到本地,相当于一个5M大小的针对于前端页面的数据库,相比于cookie而言可以节约带宽。其常用于存储一些用户信息,静态数据,缓存文件等等。由于在前端发布过程中,不需要应用市场审核,从服务器直接拉取文件浏览,在很多的场景下,前端是不需要web项目版本号的,久而久之,在迭代的过程中,Localstorage就一直存在于客户的浏览器中,如果在不考虑用户是否更新到最新的代码,均不希望Localstorage数据对用户造成异常时,目前的Localstorage API是无法实现上述功能的。
发明内容
本发明提供一种基于版本控制的Localstorage缓存实现方法、电子装置及计算机可读存储介质,其主要目的在于为Localstorage提供多元化的存储方案,解决历史Localstorage相互影响的问题,并提高web项目Localstorage数据存储的向下兼容性及稳定性。
为实现上述目的,本发明提供一种基于版本控制的Localstorage缓存实现方法,应用于电子装置,所述方法包括:
S110:获取待存储的web项目版本的当前版本号,并判断所述当前版本号是否超出与所述web项目相关的版本列表的预设阈值;
S120:当所述当前版本号在所述web项目相关的版本列表的预设阈值范围内时,对所述当前版本号及对应的KEY值进行组合,获取与所述当前版本号对应的新KEY值;
S130:将所述新KEY值存储在局部存储器Localstorage中;
S140:判断所述新KEY值是否存储成功,并当所述新KEY值存储失败时,自动减小所述预设阈值,并删除原有版本中的末尾一个版本的存储数据;
S150:循环执行步骤S140,直至所述当前版本的新KEY值存储成功。
优选地,所述当前版本号在所述web项目相关的版本列表的预设阈值范围内包括:所述web项目的当前版本与原有版本的个数之和不超出所述预设阈值的范围;
当所述当前版本号超出所述web项目相关的版本列表的预设阈值范围时,自动删除所述原有版本中的末尾一个版本的KEY值。
优选地,所述判断所述新KEY值是否存储成功的过程包括:
通过try catch对所述新KEY值进行处理,当所述try catch处理出现异常时,表明所述新KEY值存储失败;否则,表明存储成功。
优选地,所述将所述新KEY值存储在局部存储器Localstorage中的过程包括:
在Localstorage的存储空间内设置order项,所述order项用于存储所述web项目版本的KEY值;
获取所述web项目的所有版本的KEY值;
对所有版本的KEY值按照使用时间由小到大进行排序;
当存储所述当前版本的新KEY值时,将所述新KEY值添加到所述order项的最末端。
优选地,所述方法还包括:
当所述待存储的web项目版本的当前版本号无法正常获取时,默认所述当前版本为第一版本或者非正常版本;直接使用与所述当前版本对应的KEY值进行存储。
优选地,所述当前版本的版本号为package.json中的version字段值,或者为git自动生成的版本号。
此外,为实现上述目的,本发明还提供一种电子装置,该电子装置包括:存储器及处理器,所述存储器中包括基于版本控制的Localstorage缓存实现程序,所述基于版本控制的Localstorage缓存实现程序被所述处理器执行时实现如下步骤:
S110:获取待存储的web项目版本的当前版本号,并判断所述当前版本号是否超出与所述web项目相关的版本列表的预设阈值;
S120:当所述当前版本号在所述web项目相关的版本列表的预设阈值范围内时,对所述当前版本号及对应的KEY值进行组合,获取与所述当前版本号对应的新KEY值;
S130:将所述新KEY值存储在局部存储器Localstorage中;
S140:判断所述新KEY值是否存储成功,并当所述新KEY值存储失败时,自动减小所述预设阈值,并删除原有版本中的末尾一个版本的存储数据;
S150:循环执行步骤S140,直至所述当前版本的新KEY值存储成功。
优选地,所述当前版本号在所述web项目相关的版本列表的预设阈值范围内包括:所述web项目的当前版本与原有版本的个数之和不超出所述预设阈值的范围;
当所述当前版本号超出所述web项目相关的版本列表的预设阈值范围时,自动删除所述原有版本中的末尾一个版本的KEY值。
优选地,所述将所述新KEY值存储在局部存储器Localstorage中的过程包括:
在Localstorage的存储空间内设置order项,所述order项用于存储所述web项目版本的KEY值;
获取所述web项目的所有版本的KEY值;
对所有版本的KEY值按照使用时间由小到大进行排序;
当存储所述当前版本的新KEY值时,将所述新KEY值添加到所述order项的最末端。
为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中包括基于版本控制的Localstorage缓存实现程序,所述基于版本控制的Localstorage缓存实现程序被处理器执行时,实现如上所述的基于版本控制的Localstorage缓存实现方法的任意步骤。
本发明提出的基于版本控制的Localstorage缓存实现方法、电子装置及计算机可读存储介质,在使用Localstorage前先获取web项目的当前版本,并在对应存储的KEY值后拼接一个当前版本号,当Localstorage出现异常时,可保留当前最新的一份或几份数据,而清除其余版本的数据,能够控制Localstorage中存储的历史版本数据,达到提升Localstorage可读性和可维护性的目的。
附图说明
图1为本发明具体实施例基于版本控制的Localstorage缓存实现方法的应用环境示意图;
图2为图1中基于版本控制的Localstorage缓存实现程序具体实施例的模块示意图;
图3为本发明具体实施例基于版本控制的Localstorage缓存实现方法的流程图一;
图4为本发明具体实施例基于版本控制的Localstorage缓存实现方法的流程图二。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提供一种基于版本控制的Localstorage缓存实现方法,应用于一种电子装置1。参照图1所示,为本发明基于版本控制的Localstorage缓存实现方法较佳实施例的应用环境示意图。
在本实施例中,电子装置1可以是服务器、智能手机、平板电脑、便携计算机、桌上型计算机等具有运算功能的终端设备。
该电子装置1包括:处理器12、存储器11、网络接口14及通信总线15。
存储器11包括至少一种类型的可读存储介质。所述至少一种类型的可读存储介质可为如闪存、硬盘、多媒体卡、卡型存储器11等的非易失性存储介质。在一些实施例中,所述可读存储介质可以是所述电子装置1的内部存储单元,例如该电子装置1的硬盘。在另一些实施例中,所述可读存储介质也可以是所述电子装置1的外部存储器11,例如所述电子装置1上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。
在本实施例中,所述存储器11的可读存储介质通常用于存储安装于所述电子装置1的基于版本控制的Localstorage缓存实现程序10等。所述存储器11还可以用于暂时地存储已经输出或者将要输出的数据。
处理器12在一些实施例中可以是一中央处理器(Central Processing Unit,CPU),微处理器或其他数据处理芯片,用于运行存储器11中存储的程序代码或处理数据,例如执行基于版本控制的Localstorage缓存实现程序10等。
网络接口14可选地可以包括标准的有线接口、无线接口(如WI-FI接口),通常用于在该电子装置1与其他电子设备之间建立通信连接。
通信总线15用于实现这些组件之间的连接通信。
图1仅示出了具有组件11-15的电子装置1,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
可选地,该电子装置1还可以包括用户接口,用户接口可以包括输入单元比如键盘(Keyboard)、语音输入装置比如麦克风(microphone)等具有语音识别功能的设备、语音输出装置比如音响、耳机等,可选地用户接口还可以包括标准的有线接口、无线接口。
可选地,该电子装置1还可以包括显示器,显示器也可以称为显示屏或显示单元。在一些实施例中可以是LED显示器、液晶显示器、触控式液晶显示器以及有机发光二极管(Organic Light-Emitting Diode,OLED)触摸器等。显示器用于显示在电子装置1中处理的信息以及用于显示可视化的用户界面。
可选地,该电子装置1还包括触摸传感器。所述触摸传感器所提供的供用户进行触摸操作的区域称为触控区域。此外,这里所述的触摸传感器可以为电阻式触摸传感器、电容式触摸传感器等。而且,所述触摸传感器不仅包括接触式的触摸传感器,也可包括接近式的触摸传感器等。此外,所述触摸传感器可以为单个传感器,也可以为例如阵列布置的多个传感器。
此外,该电子装置1的显示器的面积可以与所述触摸传感器的面积相同,也可以不同。可选地,将显示器与所述触摸传感器层叠设置,以形成触摸显示屏。该装置基于触摸显示屏侦测用户触发的触控操作。
可选地,该电子装置1还可以包括射频(Radio Frequency,RF)电路,传感器、音频电路等等,在此不再赘述。
在图1所示的装置实施例中,作为一种计算机存储介质的存储器11中可以包括操作系统、以及基于版本控制的Localstorage缓存实现程序10;处理器12执行存储器11中存储的基于版本控制的Localstorage缓存实现程序10时实现如下步骤:
S110:获取待存储的web项目版本的当前版本号,并判断所述当前版本号是否超出与所述web项目相关的版本列表的预设阈值;
S120:当所述当前版本号在所述web项目相关的版本列表的预设阈值范围内时,对所述当前版本号及对应的KEY值进行组合,获取与所述当前版本号对应的新KEY值;
S130:将所述新KEY值存储在局部存储器Localstorage中;
S140:判断所述新KEY值是否存储成功,并当所述新KEY值存储失败时,自动减小所述预设阈值,并删除原有版本中的末尾一个版本的存储数据;
S150:循环执行步骤S140,直至所述当前版本的新KEY值存储成功。
优选地,所述当前版本号在所述web项目相关的版本列表的预设阈值范围内包括:所述web项目的当前版本与原有版本的个数之和不超出所述预设阈值的范围;
当所述当前版本号超出所述web项目相关的版本列表的预设阈值范围时,自动删除所述原有版本中的末尾一个版本的KEY值。
优选地,所述判断所述新KEY值是否存储成功的过程包括:
通过try catch对所述新KEY值进行处理,当所述try catch处理出现异常时,表明所述新KEY值存储失败;否则,表明存储成功。
优选地,所述将所述新KEY值存储在局部存储器Localstorage中的过程包括:
在Localstorage的存储空间内设置order项,所述order项用于存储所述web项目版本的KEY值;
获取所述web项目的所有版本的KEY值;
对所有版本的KEY值按照使用时间由小到大进行排序;
当存储所述当前版本的新KEY值时,将所述新KEY值添加到所述order项的最末端。
优选地,所述方法还包括:
当所述待存储的web项目版本的当前版本号无法正常获取时,默认所述当前版本为第一版本或者非正常版本;直接使用与所述当前版本对应的KEY值进行存储。
优选地,所述当前版本的版本号为package.json中的version字段值,或者为git自动生成的版本号。
上述实施例提出的电子装置1,能够为Localstorage提供多元化的存储方案,解决历史Localstorage相互影响的问题,并提高web项目Localstorage数据存储的向下兼容性及稳定性;此外,还提出了主动清理历史版本存储数据的机制,通过预设阈值可设置保留最近几个版本的数据,而不至于使得Localstorage中存储历史版本数据太多,达到提升Localstorage的可读性和可维护性的目的。
在其他实施例中,基于版本控制的Localstorage缓存实现程序10还可以被分割为一个或者多个模块,一个或者多个模块被存储于存储器11中,并由处理器12执行,以完成本发明。本发明所称的模块是指能够完成特定功能的一系列计算机程序指令段。参照图2所示,为图1中基于版本控制的Localstorage缓存实现程序10较佳实施例的程序模块图。由图2可知,所述基于版本控制的Localstorage缓存实现程序10可以被分割为:
当前版本号获取及判断单元101、新KEY值获取单元102、新KEY值存储单元103、数据删除单元104、成功存储单元105。所述模块101-105所实现的功能或操作步骤均与上文类似,此处不再详述,示例性地,例如其中:
当前版本号获取及判断单元101,用于获取待存储的web项目版本的当前版本号,并判断所述当前版本号是否超出与所述web项目相关的版本列表的预设阈值。
新KEY值获取单元102,用于当所述当前版本号在所述web项目相关的版本列表的预设阈值范围内时,对所述当前版本号及对应的KEY值进行组合,获取与所述当前版本号对应的新KEY值;
新KEY值存储单元103,用于将所述新KEY值存储在局部存储器Localstorage中;
数据删除单元104,用于判断所述新KEY值是否存储成功,并当所述新KEY值存储失败时,自动减小所述预设阈值,并删除原有版本中的末尾一个版本的存储数据;
成功存储单元105,用于循环执行上一单元104,直至所述当前版本的新KEY值存储成功。
此外,本发明还提供一种基于版本控制的Localstorage缓存实现方法。参照图3和图4共同所示,为本发明具体实施例的基于版本控制的Localstorage缓存实现方法的两种流程图。该方法可以由一个装置执行,该装置可以由软件和/或硬件实现。
在本实施例中,基于版本控制的Localstorage缓存实现方法包括:步骤S110-步骤S150,具体如下所示:
步骤S110:获取待存储的web项目版本的当前版本号,并判断所述当前版本号是否超出与所述web项目相关的版本列表的预设阈值。
其中,web项目通常指在服务器上运行的项目,页面是通过服务器上的程序运算所得到的结果。常见的web项目按计算机语言分,有Java Web(Java EE)、ASP.Net、PHP项目等。
此外,当所述待存储的web项目版本的当前版本号无法正常获取时,默认所述当前版本为第一版本或者非正常版本;此时,可以直接使用与所述当前版本对应的KEY值进行存储,不需要进行新KEY值的组合。
另外,当前版本的版本号可以为package.json中的version字段值,或者所述当前版本号为git自动生成的版本号。
步骤120:当所述当前版本号在所述web项目相关的版本列表的预设阈值范围内时,对所述当前版本号及对应的KEY值进行组合,获取与所述当前版本号对应的新KEY值。
其中,所述当前版本号在所述web项目相关的版本列表的预设阈值范围内包括:所述web项目的当前版本与原有版本(或旧版本,或历史版本,下同)的个数之和不超出所述预设阈值的范围;并且,当所述当前版本号超出所述web项目相关的版本列表的预设阈值范围时,自动删除所述原有版本中的末尾一个版本的KEY值。
例如,在Localstorage中已存储有与web项目有关的三个旧版本信息,当再次使用Localstorage存储当前版本时,需要判断版本列表的预设阈值是否允许当前版本的存储,如果预设阈值为小于4,表明当前版本与原有版本的个数之和超出所述预设阈值,此时,需要删除原有版本中的末尾一个版本(或最旧版本)的KEY值。
其中,KEY值主要是指react的key属性,即react利用key来识别组件,key为一种身份标识,类似通过身份证来辨识一个人一样。每个key对应一个组件,相同的key react认为是同一个组件,能够确保后续相同的key对应组件都不会被重复创建。
步骤S130:将所述新KEY值存储在局部存储器Localstorage中。
其中,Localstorage有独立的存储空间,能够扩展本地存储容量,已经与大部分的主流流感器实现兼容,有简单易用的API,Localstorage存储的内容不会被送到服务器,进而不会与服务器进行交互,Localstorage中的数据会保存在客户端硬盘上,或者其他存储器上,其中的数据会永久保存,除非手动删除数据。
当所述新KEY值存储失败时,表明Localstorage的存储空间不足,此时可自动减小预设阈值,当预设阈值减小时,即可删除原存储在Localstorage中的旧版本中的末尾的一个版本的存储数据,以为当前版本的存储提供足够的存储空间。
此外,需要说明的是,将所述新KEY值存储在局部存储器Localstorage中的过程包括:在Localstorage的存储空间内设置order项,所述order项用于存储所述web项目版本的KEY值;获取所述web项目的所有版本的KEY值;对所有版本的KEY值按照使用时间由小到大进行排序;当存储所述当前版本的新KEY值时,将所述新KEY值添加到所述order项的最末端。
步骤S140:判断所述新KEY值是否存储成功,并当所述新KEY值存储失败时,自动减小所述预设阈值,并删除原有版本中的末尾一个版本的存储数据。
其中,所述判断所述新KEY值是否存储成功的过程包括:通过try catch对所述新KEY值进行处理,当所述try catch处理出现异常时,表明所述新KEY值存储失败;否则,表明存储成功。
具体地,每个web项目的根目录下面,一般都有一个package.json文件,定义了这个项目所需要的各种模块,以及项目的配置信息,比如名称、版本、许可证等元数据,其中的package.json文件可以手工编写,也可以使用npm init命令自动生成。
例如,若web项目的前版本号为V1.0.1,需要存储的KEY为UserName,对当前版本号及对应的KEY值进行组合,获取与所述当前版本号对应的新KEY值为:UserName101,并将所述新KEY值UserName101存贮至所述Localstorage中;而若当前版本为V1.0.2时,则实际存储的新KEY为UserName102等,当新KEY值存储失败时,表明存储空间有限,此时可自动减小所述预设阈值,例如,原预设阈值设定为4,即可存储4个版本信息,当新KEY值存储失败时,可将预设阈值减小为3,并删除原有版本中的末尾一个版本的存储数据,这是再对新KEY值进行存储即可。
S150:循环执行步骤S140,直至所述当前版本的新KEY值存储成功。
结合图4所示,提出本发明基于版本控制的Localstorage缓存实现方法的第二个具体示例,流程如下所示:
步骤一:获取web项目的当前版本号,在该步骤中,如果无法正常获取当前版本号则默认当前版本为第一版本或者非正常版本,版本号为空,使用与当前版本对应的KEY值直接进行存储。
步骤二:待获取web项目的当前版本号后,判断所有版本号的个数是否超出预设阈值。
步骤三:如果所有版本号的个数超出预设阈值,则删除超过预设阈值的最末尾的版本号对应的KEY值,保留预设阈值内的KEY值。
步骤四:如果所有版本号的个数没有超出预设阈值,则对当前版本号和对应的KEY值进行组合形成新的KEY值,并对新的KEY值进行存储。
步骤五:判断新KEY值是够存储成功。
步骤六:如果新KEY值存储失败,则自动减小预设阈值,并删除末尾一个版本对应的存储数据;否则,如果存储成功,可正常读写,则结束。
由图4可知,在获取web项目最新的当前版本号的过程中,如能够成功获取当前版本号,则对与web项目的所有版本号list进行是否超出预设阈值的判断;否则,如没有成功获取到当前版本的版本号,则默认该当前版本为web项目的第一版本或者非正常版本,此时的版本号为空,直接使用对应的KEY值进行存储。
此外,因为Localstorage存储大小本身是有限制的,所以我们会针对Localstorage.setItem()做try…catch…处理,try…catch…是异常处理机制,try与catch之间的语句如果执行有问题,那么catch会捕获错误信息,否则不会出现异常。在对Localstorage进行try…catch…处理时,倘若出现异常,表明存储空间有限,则将仅保留当前最新的一份版本数据,其余版本数据将被清除。由于localstorage.setItem()不会自动将Json对象转换成字符串的形式,在使用localstorage.setItem()正确存储JSON时,先用JSON.stringify()方法将json对象转换成字符串形式,转换成JSON字符串后进行存储即可。
此外,本发明还提出主动清除历史版本存储数据的机制,通过预设阈值可设置保留最近几个版本的数据,而不至于使得Localstorage中存储历史版本数据太多,达到提升Localstorage的可读性和可维护性的目的。
利用上述基于版本控制的Localstorage缓存实现方法,能够为Localstorage提供多元化的存储方案,解决历史Localstorage相互影响的问题,并提成web项目Localstorage数据存储的向下兼容性及稳定性。
此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质中包括基于版本控制的Localstorage缓存实现程序,所述基于版本控制的Localstorage缓存实现程序被处理器执行时实现如下操作:
S110:获取待存储的web项目版本的当前版本号,并判断所述当前版本号是否超出与所述web项目相关的版本列表的预设阈值;
S120:当所述当前版本号在所述web项目相关的版本列表的预设阈值范围内时,对所述当前版本号及对应的KEY值进行组合,获取与所述当前版本号对应的新KEY值;
S130:将所述新KEY值存储在局部存储器Localstorage中;
S140:判断所述新KEY值是否存储成功,并当所述新KEY值存储失败时,自动减小所述预设阈值,并删除所述原有版本中的末尾一个版本的存储数据;
S150:循环执行步骤S140,直至当前版本的新KEY值存储成功。
优选地,所述当前版本号在所述web项目相关的版本列表的预设阈值范围内包括:所述web项目的当前版本与原有版本的个数之和不超出所述预设阈值的范围;
当所述当前版本号超出所述web项目相关的版本列表的预设阈值范围时,自动删除所述原有版本中的末尾一个版本的KEY值。
优选地,所述判断所述新KEY值是否存储成功的过程包括:
通过try catch对所述新KEY值进行处理,当所述try catch处理出现异常时,表明所述新KEY值存储失败;否则,表明存储成功。
优选地,所述将所述新KEY值存储在局部存储器Localstorage中的过程包括:
在Localstorage的存储空间内设置order项,所述order项用于存储所述web项目版本的KEY值;
获取所述web项目的所有版本的KEY值;
对所有版本的KEY值按照使用时间由小到大进行排序;
当存储所述当前版本的新KEY值时,将所述新KEY值添加到所述order项的最末端。
优选地,所述方法还包括:
当所述待存储的web项目版本的当前版本号无法正常获取时,默认所述当前版本为第一版本或者非正常版本;直接使用与所述当前版本对应的KEY值进行存储。
优选地,所述当前版本的版本号为package.json中的version字段值,或者为git自动生成的版本号。
本发明之计算机可读存储介质的具体实施方式与上述基于版本控制的Localstorage缓存实现方法、电子装置的具体实施方式大致相同,在此不再一一赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (6)
1.一种基于版本控制的Localstorage缓存实现方法,应用于电子装置,其特征在于,所述方法包括:
S110:获取待存储的web项目版本的当前版本号,并判断所述当前版本号是否超出与所述web项目相关的版本列表的预设阈值;
S120:当所述当前版本号在所述web项目相关的版本列表的预设阈值范围内时,对所述当前版本号及对应的KEY值进行组合,获取与所述当前版本号对应的新KEY值;
S130:将所述新KEY值存储在局部存储器Localstorage中;其中,
在Localstorage的存储空间内设置order项,所述order项用于存储所述web项目版本的KEY值;
获取所述web项目的所有版本的KEY值;
对所有版本的KEY值按照使用时间由小到大进行排序;
当存储所述当前版本的新KEY值时,将所述新KEY值添加到所述order项的最末端;
S140:判断所述新KEY值是否存储成功,并当所述新KEY值存储失败时,自动减小所述预设阈值,并删除原有版本中的末尾一个版本的存储数据;
S150:循环执行步骤S140,直至所述当前版本的新KEY值存储成功;
所述当前版本号在所述web项目相关的版本列表的预设阈值范围内包括:所述web项目的当前版本与原有版本的个数之和不超出所述预设阈值的范围;
当所述当前版本号超出所述web项目相关的版本列表的预设阈值范围时,自动删除所述原有版本中的末尾一个版本的KEY值。
2.根据权利要求1所述的基于版本控制的Localstorage缓存实现方法,其特征在于,所述判断所述新KEY值是否存储成功的过程包括:
通过try catch对所述新KEY值进行处理,当所述try catch处理出现异常时,表明所述新KEY值存储失败;否则,表明存储成功。
3.根据权利要求1所述的基于版本控制的Localstorage缓存实现方法,其特征在于,所述方法还包括:
当所述待存储的web项目版本的当前版本号无法正常获取时,默认所述当前版本为第一版本或者非正常版本;直接使用与所述当前版本对应的KEY值进行存储。
4.根据权利要求1所述的基于版本控制的Localstorage缓存实现方法,其特征在于,
所述当前版本的版本号为package.json中的version字段值,或者为git自动生成的版本号。
5.一种电子装置,其特征在于,该电子装置包括:存储器及处理器,所述存储器中包括基于版本控制的Localstorage缓存实现程序,所述基于版本控制的Localstorage缓存实现程序被所述处理器执行时实现如下步骤:
S110:获取待存储的web项目版本的当前版本号,并判断所述当前版本号是否超出与所述web项目相关的版本列表的预设阈值;
S120:当所述当前版本号在所述web项目相关的版本列表的预设阈值范围内时,对所述当前版本号及对应的KEY值进行组合,获取与所述当前版本号对应的新KEY值;
S130:将所述新KEY值存储在局部存储器Localstorage中;其中,
在Localstorage的存储空间内设置order项,所述order项用于存储所述web项目版本的KEY值;
获取所述web项目的所有版本的KEY值;
对所有版本的KEY值按照使用时间由小到大进行排序;
当存储所述当前版本的新KEY值时,将所述新KEY值添加到所述order项的最末端;
S140:判断所述新KEY值是否存储成功,并当所述新KEY值存储失败时,自动减小所述预设阈值,并删除原有版本中的末尾一个版本的存储数据;
S150:循环执行步骤S140,直至所述当前版本的新KEY值存储成功;所述当前版本号在所述web项目相关的版本列表的预设阈值范围内包括:所述web项目的当前版本与原有版本的个数之和不超出所述预设阈值的范围;
当所述当前版本号超出所述web项目相关的版本列表的预设阈值范围时,自动删除所述原有版本中的末尾一个版本的KEY值。
6.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中包括基于版本控制的Localstorage缓存实现程序,所述基于版本控制的Localstorage缓存实现程序被处理器执行时,实现如权利要求1至4中任一项所述的基于版本控制的Localstorage缓存实现方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910469797.2A CN110389781B (zh) | 2019-05-31 | 2019-05-31 | 基于版本控制的Localstorage缓存实现方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910469797.2A CN110389781B (zh) | 2019-05-31 | 2019-05-31 | 基于版本控制的Localstorage缓存实现方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110389781A CN110389781A (zh) | 2019-10-29 |
CN110389781B true CN110389781B (zh) | 2023-04-28 |
Family
ID=68285230
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910469797.2A Active CN110389781B (zh) | 2019-05-31 | 2019-05-31 | 基于版本控制的Localstorage缓存实现方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110389781B (zh) |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9742860B2 (en) * | 2012-02-28 | 2017-08-22 | International Business Machines Corporation | Bi-temporal key value cache system |
US9088461B2 (en) * | 2012-06-21 | 2015-07-21 | International Business Machines Corporation | Common web accessible data store for client side page processing |
CN103488581B (zh) * | 2013-09-04 | 2016-01-13 | 用友网络科技股份有限公司 | 数据缓存系统和数据缓存方法 |
CN107329910A (zh) * | 2017-06-27 | 2017-11-07 | 中南大学 | 一种基于localStorage的Web前端数据本地存储和访问方法 |
CN108170465B (zh) * | 2018-01-04 | 2021-01-01 | 武汉斗鱼网络科技有限公司 | 一种版本信息管理方法、电子设备及可读存储介质 |
CN109542488A (zh) * | 2018-11-30 | 2019-03-29 | 深圳市元征科技股份有限公司 | 一种软件版本配置方法及相关装置、系统 |
CN109710190B (zh) * | 2018-12-26 | 2022-03-08 | 百度在线网络技术(北京)有限公司 | 一种数据存储方法、装置、设备及存储介质 |
-
2019
- 2019-05-31 CN CN201910469797.2A patent/CN110389781B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110389781A (zh) | 2019-10-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20140075301A1 (en) | Information processing apparatus, control method, and recording medium | |
CN108536745B (zh) | 基于Shell的数据表提取方法、终端、设备及存储介质 | |
CN111274263B (zh) | 可视化数据库变更语句生成方法、装置及存储介质 | |
CN105138376A (zh) | 混合模式应用、其网页资源升级方法、移动终端以及系统 | |
CN109299205B (zh) | 将规划行业使用的空间数据进行入库的方法和装置 | |
US20160284013A1 (en) | Order processing system and order processing method | |
CN108388616B (zh) | 数据收集装置、方法、系统及计算机可读存储介质 | |
CN108196975B (zh) | 基于多校验和的数据验证方法、装置及存储介质 | |
CN110389781B (zh) | 基于版本控制的Localstorage缓存实现方法、装置及存储介质 | |
CN111125205B (zh) | 看板数据显示方法、终端及存储介质 | |
CN110442636B (zh) | 一种数据的读写方法、装置及数据读写设备 | |
CN111090651A (zh) | 数据源的处理方法、装置、设备及可读存储介质 | |
CN107506474B (zh) | 基于对象映射的数据库操作方法及装置 | |
CN110837500A (zh) | 基于socal内嵌窗口的数据筛选方法、装置以及计算机设备 | |
CN115809200A (zh) | 基于python的UI自动化用例调用方法及装置 | |
CN104572943A (zh) | 免安装程序清理方法及装置 | |
CN108961351B (zh) | 通过压缩实现分形图绘制的方法、设备、系统及存储介质 | |
CN110851346B (zh) | 查询语句边界问题的检测方法、装置、设备及存储介质 | |
CN114170044A (zh) | 自动申报方法、装置、存储介质及电子设备 | |
CN108363614B (zh) | 一种应用的业务模块管理方法、装置及服务器 | |
JP2015049743A (ja) | 情報処理装置、情報処理方法、及びプログラム | |
JP2015032073A (ja) | テキストデータ保存装置、テキストデータ保存プログラム及びテキストデータの保存方法 | |
US11614993B1 (en) | System and method for restoring deleted objects and their assignments to other objects based on any deletion of the other objects | |
JP6008886B2 (ja) | 情報処理装置及び方法 | |
CN111695093B (zh) | 基于iOS应用的加固方法、电子装置及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20210128 Address after: 518000 Room 201, building A, No. 1, Qian Wan Road, Qianhai Shenzhen Hong Kong cooperation zone, Shenzhen, Guangdong (Shenzhen Qianhai business secretary Co., Ltd.) Applicant after: Shenzhen saiante Technology Service Co.,Ltd. Address before: 1-34 / F, Qianhai free trade building, 3048 Xinghai Avenue, Mawan, Qianhai Shenzhen Hong Kong cooperation zone, Shenzhen, Guangdong 518000 Applicant before: Ping An International Smart City Technology Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |