CN116910415A - 数据的存储方法及装置、数据的读取方法 - Google Patents

数据的存储方法及装置、数据的读取方法 Download PDF

Info

Publication number
CN116910415A
CN116910415A CN202311156230.2A CN202311156230A CN116910415A CN 116910415 A CN116910415 A CN 116910415A CN 202311156230 A CN202311156230 A CN 202311156230A CN 116910415 A CN116910415 A CN 116910415A
Authority
CN
China
Prior art keywords
data
target
group
groups
byte number
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.)
Pending
Application number
CN202311156230.2A
Other languages
English (en)
Inventor
王根镇
刘力伟
赵鸿翔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
AVIC INTERNATIONAL E-BUSINESS Inc
Original Assignee
AVIC INTERNATIONAL E-BUSINESS Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by AVIC INTERNATIONAL E-BUSINESS Inc filed Critical AVIC INTERNATIONAL E-BUSINESS Inc
Priority to CN202311156230.2A priority Critical patent/CN116910415A/zh
Publication of CN116910415A publication Critical patent/CN116910415A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • G06F16/986Document structures and storage, e.g. HTML extensions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种数据的存储方法及装置、数据的读取方法。其中,该方法包括:获取待存储到当前页面的目标数据;对目标数据进行分组处理,得到多组数据,其中,多组数据中的每组数据的字节数均为预设字节数,预设字节数小于目标数据的字节数;将多组数据存储在当前页面的多个嵌入式框架中的多个网络应用程序接口中,并将多组数据的相关信息存储在索引表中,其中,多个嵌入式框架的属性为不可见。本申请解决了由于相关技术将应用程序欲缓存在本地的数据传输到服务器端存储造成的传输效率低以及数据的安全性低的技术问题。

Description

数据的存储方法及装置、数据的读取方法
技术领域
本申请涉及数据处理技术领域,具体的网页中缓存数据的处理技术,具体而言,涉及一种数据的存储方法及装置、数据的读取方法。
背景技术
随着移动互联网的发展和普及,越来越多的应用程序需要在本地存储一些数据,以便于离线使用和加速访问速度。网络应用程序接口(localStorage)作为5.0版本的超文本(HTML5)中一种新型的本地存储技术,已经被广泛应用于全球广域网(Web)的应用程序中。然而,localStorage的存储容量在各个浏览器中存在较大差异,通常在5兆比特(MB)到10MB之间。这限制了Web应用在客户端存储大量数据的能力。相关技术通过使用服务器端存储数据解决这一问题,但由于需要将欲存储在本地的数据传输到服务器端,因此,存在传输效率低且安全性低的问题。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种数据的存储方法及装置、数据的读取方法,以至少解决由于相关技术将应用程序欲缓存在本地的数据传输到服务器端存储造成的传输效率低以及数据的安全性低的技术问题。
根据本申请实施例的一个方面,提供了一种数据的存储方法,包括:获取待存储到当前页面的目标数据;对目标数据进行分组处理,得到多组数据,其中,多组数据中的每组数据的字节数均为预设字节数,预设字节数小于目标数据的字节数;将多组数据存储在当前页面的多个嵌入式框架中的多个网络应用程序接口中,并将多组数据的相关信息存储在索引表中,其中,多个嵌入式框架的属性为不可见。
可选地,多个嵌入式框架中每个嵌入式框架对应一个网页,且每个嵌入式框架对应的网页的域名为目标域名,其中,目标域名包括:第一类域名、第二类域名,第一类域名为当前页面的域名的子域名,第二类域名为与当前页面的域名不属于同一个域但允许当前页面跨域访问的其它域的域名。
可选地,对目标数据进行分组处理,包括:将目标数据转换为字符串;确定字符串的字节数,其中,字符串的字节数为目标数据的字节数;确定预设字节数,将目标数据的字节数与预设字节数的比值确定为目标数量,其中,目标数量为目标数据的分组数。
可选地,对目标数据进行分组处理,还包括:获取初始密钥,并根据初始密钥生成多个轮密钥;利用多个轮密钥对每组数据进行多轮加密操作,并在最后一轮加密后输出加密后的数据,其中,多轮加密操作中的每轮加密操作均包括以下至少之一:对每组数据执行轮密钥加、字节替换、行移位和列混淆的操作。
可选地,将多组数据的相关信息存储在索引表中,包括:将多组数据的相关信息以对象数组的形式记录在索引表中,其中,每组数据的相关信息包括:每组数据的索引号、每组数据的键名、每组数据的过期时间以及每组数据的状态,每组数据的状态包括:丢失或未丢失,每组数据的索引号用于指示每组数据的存储的网络应用程序接口,索引表存储在当前页面的网络应用程序接口中。
可选地,将多组数据存储在当前页面的多个嵌入式框架中的多个网络应用程序接口中,包括:获取多个嵌入式框架中每个嵌入式框架的存储容量阈值;将大于预设阈值的存储容量阈值对应的嵌入式框架确定为目标嵌入式框架;将多组数据存储在目标嵌入式框架中。
可选地,将多组数据存储在目标嵌入式框架中,包括:在只存在一个目标嵌入式框架时,将多组数据均存储在一个目标嵌入式框架中;在存在多个目标嵌入式框架时,获取多个目标嵌入式框架中每个目标嵌入式框架的剩余存储容量;依据剩余存储容量从大到小对多个目标嵌入式框架进行排序,得到存储顺序;将多组数据依据存储顺序依次存储在多个目标嵌入式框架中。
根据本申请实施例的另一方面,还提供了一种数据的读取方法,包括:接收读取指令,其中,读取指令用于指示从当前页面中读取目标数据;确定组成目标数据的多组数据,并从索引表中获取多组数据中每组数据的相关信息,其中,每组数据的相关信息,包括:每组数据的索引号、每组数据的键名、每组数据的过期时间以及每组数据的状态,每组数据的状态包括:丢失或未丢失,每组数据的索引号用于指示每组数据的存储的网络应用程序接口,索引表存储在当前页面的网络应用程序接口中;依据每组数据的相关信息在索引表中查询每组数据的存储位置,得到多组数据的多个存储位置;从多个存储位置读取出多组数据,并依据索引表将多组数据合并为目标数据。
根据本申请实施例的另一方面,还提供了一种数据的存储装置,包括:获取模块,用于获取待存储到当前页面的目标数据;分组模块,用于对目标数据进行分组处理,得到多组数据,其中,多组数据中的每组数据的字节数均为预设字节数,预设字节数小于目标数据的字节数;存储模块,用于将多组数据存储在当前页面的多个嵌入式框架中的多个网络应用程序接口中,并将多组数据的相关信息存储在索引表中,其中,多个嵌入式框架的属性为不可见。
根据本申请实施例的另一方面,还提供了一种非易失性存储介质,非易失性存储介质中存储有计算机程序,其中,在非易失性存储介质所在设备通过运行计算机程序执行上述的数据的存储方法或数据的读取方法。
根据本申请实施例的另一方面,还提供了一种电子设备,包括存储器和处理器,存储器中存储有计算机程序,处理器被设置为通过计算机程序执行上述的数据的存储方法或数据的读取方法。
在本申请实施例中,采用获取待存储到当前页面的目标数据;对目标数据进行分组处理,得到多组数据,其中,多组数据中的每组数据的字节数均为预设字节数,预设字节数小于目标数据的字节数;将多组数据存储在当前页面的多个嵌入式框架中的多个网络应用程序接口中,并将多组数据的相关信息存储在索引表中,其中,多个嵌入式框架的属性为不可见的方式,通过自动对欲缓存在本地的数据分片处理,对每个数据分片进行加密,并将加密后的数据分片存储在不同域名下的localStorage中,达到了利用localStorage实现浏览器存储容量的扩容的目的,从而实现了扩大存储容量,同时提高存储效率的技术效果,进而解决了由于相关技术将应用程序欲缓存在本地的数据传输到服务器端存储造成的传输效率低以及数据的安全性低技术问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的一种用于实现数据的存储方法的计算机终端(或移动设备)的硬件结构框图;
图2是根据本申请实施例的一种数据的存储方法的步骤流程图;
图3是根据本申请实施例的一种数据的读取方法的步骤流程图;
图4是根据本申请实施例的一种数据的存储装置的结构图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为了更好地理解本申请实施例,以下将本申请实施例中涉及的技术术语解释如下:
localStorage:一种在网页上存储数据的网络应用程序接口,它允许网页在浏览器中永久保存数据。
嵌入式框架(iframe):一种HTML元素,用于在一个网页中嵌入另一个网页。它可以被用于在主页面中显示其他网页、广告、社交媒体插件等。在一个iframe中可以使用localStorage存储和获取数据。
域名:用于标识互联网上的一个网站。
轮密钥:对称加密算法(Advanced Encryption Standard,AES)中用于每一轮的密钥,轮密钥通过对初始密钥进行衍生生成。
轮密钥加:将本轮加密操作中的密钥与待加密的数据按比特执行异或操作。
在相关技术中,使用服务器端存储数据,将欲缓存在网页本地的数据传输到服务器中缓存,因此,存在效率低且数据安全性低的问题。为了解决该问题,本申请实施例中提供了相关的解决方案,以下详细说明。
根据本申请实施例,提供了一种数据的存储方法的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。图1示出了一种用于实现数据的存储方法的计算机终端(或移动设备)的硬件结构框图。如图1所示,计算机终端10(或移动设备10)可以包括一个或多个(图中采用102a、102b,……,102n来示出)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输装置106。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为BUS总线的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
应当注意到的是上述一个或多个处理器102和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算机终端10(或移动设备)中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器104可用于存储应用软件的软件程序以及模块,如本申请实施例中的数据的存储方法对应的程序指令/数据存储装置,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的数据的存储方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与计算机终端10(或移动设备)的用户界面进行交互。
在上述运行环境下,本申请实施例提供了一种数据的存储方法,图2是根据本申请实施例提供的数据的存储方法的步骤流程图,如图2所示,该方法包括如下步骤:
步骤S202,获取待存储到当前页面的目标数据。
本申请实施例提供一种基于iframe的存储扩容方法,通过跨域iframe的技术,将数据分片存储在不同iframe对应的不同域名下的localStorage中,达到了扩容的目的。在步骤S202中,iframe所在的(当前)网页页面或者运行iframe所在的(当前)网页页面的设备获取待存储到iframe所在的(当前)网页页面的本地的(目标)数据。
步骤S204,对目标数据进行分组处理,得到多组数据,其中,多组数据中的每组数据的字节数均为预设字节数,预设字节数小于目标数据的字节数。
在iframe所在的网页页面获取待缓存在其本地的(目标)数据后,在步骤S204中对获取到的(目标)数据进行分片处理,具体的,将(目标)数据分为分片阈值相等的多组数据,其中,分片阈值为预先设定的每个分片中的数据的最大字节数(即预设字节数);由于本申请实施例提供的方法应用于数据量较大的场景,因此,在大数据量的使用场景下,每个分片中的数据的最大字节数(即预设字节数)小于待缓存在当前网页页面的本地的(目标)数据的字节数;如果将本申请实施例提供的方法应用在小数据量的场景下,每个分片中的数据的最大字节数(即预设字节数)也可以大于或者等于待缓存在当前网页页面的本地的(目标)数据的字节数,但是,当每个分片中的数据的最大字节数(即预设字节数)大于或者等于待缓存在当前网页页面的本地的(目标)数据的字节数时,不再需要对待缓存在当前网页页面的本地的(目标)数据进行分片(即分组)处理。
可选地,对目标数据进行分组处理,包括:将目标数据转换为字符串;确定字符串的字节数,其中,字符串的字节数为目标数据的字节数;确定预设字节数,将目标数据的字节数与预设字节数的比值确定为目标数量,其中,目标数量为目标数据的分组数。
在本实施例中,将分片(分组)处理后的每组数据加密后再进行存储,为便于加密预先将(目标)数据转换为字符串的格式;具体的,在按照预先设置的分片阈值对待存储在当前网页页面的本地的数据(即目标数据)进行分片(分组)处理之前,首先将(目标)数据转换为字符串;接下来,计算字符串的字节数以确定待存储在当前网页页面的本地的数据(即目标数据)所需的存储容量;接下来,根据计算得到的字符串的字节数(即目标数据的字节数)和预设的分片阈值(即预设字节数)共同确定分片(分组)处理时将待存储在当前网页页面的本地的数据(即目标数据)分片的结果(即分组数);例如,可以将字符串的字节数(即目标数据的字节数)和预设的分片阈值(即预设字节数)的比值确定为(目标)数据的分片的结果(即分组数)。在当前网页页面初始化之前,将本实施例中的方法以代码的形式写入当前网页页面的底层程序中,当前网页页面/运行当前网页页面的设备在运行中接收待存储的(目标)数据后即开始执行本申请实施例中提供的数据的分片方法。
根据本申请一个可选的实施例,对目标数据进行分组处理,还包括:获取初始密钥,并根据初始密钥生成多个轮密钥;利用多个轮密钥对每组数据进行多轮加密操作,并在最后一轮加密后输出加密后的数据,其中,多轮加密操作中的每轮加密操作均包括以下至少之一:对每组数据执行轮密钥加、字节替换、行移位和列混淆的操作。
如上一实施例提及的,为便于加密,预先将(目标)数据转换为字符串的格式,因此,在整个数据分组处理的过程中包括分片(分组)和加密两种操作,在本实施例,当上一实施例将待存储在当前网页页面的本地的数据(即目标数据)分片(分组)后,分别对每组数据加密,其中,加密的方法包括单项加密、对称加密、非对称加密以及数字签名加密等多种加密方法,在本实施例中,使用对称加密算法(AES)对每个数据分片(即每组数据)加密;具体的,获取一个初始密钥,初始密钥为一个128位/192位/256位的字符串;根据初始密钥生成多个轮密钥,这多个轮密钥用于在AES加密过程中对每个数据分片(即每组数据)执行多轮加密操作,这多轮加密操作在AES加密被称为轮密钥加操作;每次执行轮密钥加操作时,对本次轮密钥加操作中的密钥与待加密的数据分片(即每组数据)循环执行轮密钥加操作、字节替换操作、行移位操作以及列混淆操作;其中,轮密钥加操作是对本次轮密钥加操作中的密钥与待加密的数据分片(即每组数据)执行异或操作;字节替换操作是将经过分组填充后的数据分片(即每组数据)中的每一字节替换为AES加密中预定义的置换表中的任意一个值;行移位是对替换后的数据分片(即每组数据)的每一行进行循环移位操作;列混淆是对替换后的数据分片(即每组数据)的每一列进行线性变换操作。
步骤S206,将多组数据存储在当前页面的多个嵌入式框架中的多个网络应用程序接口中,并将多组数据的相关信息存储在索引表中,其中,多个嵌入式框架的属性为不可见。
对于大数据量的应用场景,将待缓存在当前网页页面的本地的(目标)数据分为多组数据后,将这多组数据分别存储在多个不同域名对应的多个不同嵌入式框架(iframe)中的多个不同网络应用程序接口(localStorage)中,并将这多组数据的相关信息记录在一个存储在当前网页页面的索引表中;其中,多个同域名对应的多个不同嵌入式框架(iframe)为当前网页页面中的隐藏元素(即属性为不可见)。需要说明的是,当前网页页面中的iframe是否可见是预先设置的,由于在本申请实施例提供的方法中,当前页面中的多个嵌入式框架仅用于扩大当期页面缓存数据的容量,因此,本申请实施例中将当前网页页面中的iframe设置为不可见。
根据本申请一个可选的实施例,多个嵌入式框架中每个嵌入式框架对应一个网页,且每个嵌入式框架对应的网页的域名为目标域名,其中,目标域名包括:第一类域名、第二类域名,第一类域名为当前页面的域名的子域名,第二类域名为与当前页面的域名不属于同一个域但允许当前页面跨域访问的其它域的域名。
在本实施例中,在当前网页页面中作为隐藏元素的嵌入式框架(iframe)为提前创建的,其中,嵌入式框架(iframe)的数量可以根据实际应用情况预先设定,每个嵌入式框架(iframe)可以引入一个固定存储容量(如5M)的嵌入页面,每个嵌入式框架(iframe)引入的嵌入页面对应一个域名,因此,每个嵌入式框架(iframe)对应一个(目标)域名。当前网页页面中的所有嵌入式框架(iframe)对应的(目标)域名分类为以下两类:一类域名(即第一类域名)是当前网页页面所在域名的子域名;另一类域名(即第二类域名)是允许当前网页页面跨域访问的其它页面的域名。每个嵌入式页面的属性和其所对应的域名均预先写入当前网页页面中的底层代码中,具体的,在当前网页页面以代码的形式写明每个嵌入式页面对应的编码,每个编码指示的嵌入式页面进行属性为可见/不可见,以及每个编码指示的嵌入式页面对应域名为哪一个。
根据本申请另一个可选的实施例,将多组数据的相关信息存储在索引表中,包括:将多组数据的相关信息以对象数组的形式记录在索引表中,其中,每组数据的相关信息包括:每组数据的索引号、每组数据的键名、每组数据的过期时间以及每组数据的状态,每组数据的状态包括:丢失或未丢失,每组数据的索引号用于指示每组数据的存储的网络应用程序接口,索引表存储在当前页面的网络应用程序接口中。
本申请实施例提供的方法将每个数据分片(即每组数据)的相关信息记录在同一个索引表中,该索引表存储在主页面(即当前网页页面)的应用程序接口(localStorage)中。在本实施例中,在索引表中存储的每个数据分片(即每组数据)的相关信息包括:每个数据分片(即每组数据)在索引表中的索引号、每个数据分片(即每组数据)的键名、每个数据分片(即每组数据)的过期时间以及每个数据分片(即每组数据)是丢失状态还是未丢失状态的状态信息。在将每个数据分片(即每组数据)的相关信息记录在索引表之前,首先定义索引表的数据结构,例如,将索引表的数据结构定义为对象数组,则每个数据分片(即每组数据)的索引号、键名、过期时间以及状态信息就以一个对象数组的形式存储在索引表中;对于底层代码来说,当每个数据分片(即每组数据)的相关信息以对象数组的形式存储在索引表中时,底层代码在执行时,会将这一个对象数组中的信息全部识别为是某一个数据分片(即某一组数据)的相关信息,因此,将索引表中的数据结构定义为对象数组,能够帮助底层代码将与每个数据分片(即每组数据)相关的信息与其对应的数据分片(即每组数据)关联起来。每个数据分片(即每组数据)的相关的信息中的过期时间可以通过时间戳的形式标记在对应的数据上,在触发数据清理时,当前网页页面通过时间戳识别出已经过期的数据并将其删除;其中,触发数据清理的动作可以是当前网页页面加载。
根据本申请一个可选的实施例,将多组数据存储在当前页面的多个嵌入式框架中的多个网络应用程序接口中,包括:获取多个嵌入式框架中每个嵌入式框架的存储容量阈值;将大于预设阈值的存储容量阈值对应的嵌入式框架确定为目标嵌入式框架;将多组数据存储在目标嵌入式框架中。
在本实施例中,通过将分片(分组)处理得到多个数据分片(即多组数据)分别存储在当前网页页面中的多个不同嵌入式框架(iframe)中的多个不同域名对应的网络应用程序接口(localStorage)中实现在当前网页页面缓存待存储的(目标)数据的技术效果;对于当前网页页面中的多个嵌入式框架(iframe)中,每个嵌入式框架(iframe)中均设置有用于存数数据的、固定存储量的网络应用程序接口(localStorage);这些嵌入式框架(iframe)有些可能已经被用来存储过数据,而有些可能还未存储过数据,因此,在进行数据存储前,首先需要获取当前网页页面中每个嵌入式框架(iframe)能够用于存储数据的存储容量阈值,以及本次存储预先设置的筛选条件(即预设阈值);将存储容量阈值大于本次存储预先设置的筛选条件(即预设阈值)的嵌入式框架(iframe)确定为在本次存储中能够被用来存储数据的iframe(即目标嵌入式框架);并在执行本次存储时,将待存储的多组数据存储在通过上述方法确定的在本次存储中能够被用来存储数据的iframe(即目标嵌入式框架)中。
可选地,将多组数据存储在目标嵌入式框架中,包括:在只存在一个目标嵌入式框架时,将多组数据均存储在一个目标嵌入式框架中;在存在多个目标嵌入式框架时,获取多个目标嵌入式框架中每个目标嵌入式框架的剩余存储容量;依据剩余存储容量从大到小对多个目标嵌入式框架进行排序,得到存储顺序;将多组数据依据存储顺序依次存储在多个目标嵌入式框架中。
在本实施例中,在将多个数据分片(即多组数据)分别存储在当前网页页面中的多个不同嵌入式框架(iframe)时,存在以下几种情况:第一种,只存在一个能够在本次存储中用于被存储数据的目标嵌入式框架,则此时将所有的数据分片都存储在该嵌入式框架(iframe)中的网络应用程序接口(localStorage)中,由于嵌入式框架(iframe)对应的域名不同于当前网页页面的域名,因此,在这种情况下仍能够实现突破单一域名下localStorage存储容量的限制的技术效果。如果在将所有的数据分片(即每组数据)均存储到这一个目标嵌入式框架之前,该目标嵌入式框架被存储满,此时,将剩余的数据分片存储在未被筛选为目标嵌入式框架的其它嵌入式框架中,具体的,按照剩余存储容量阈值由大到小的顺序依次将剩余的数据分片存储在除目标嵌入式框架以外的其它嵌入式框架中,直到剩余的数据分片被存储完毕。第二种,存在多个目标嵌入式框架(iframe),则在存储多个数据分片(即多组数据)数据分片时,按照剩余存储容量从大到小的顺序将多个数据分片(即多组数据)通过轮循的方式依次存储在这多个目标嵌入式框架(iframe)中,其中通过轮循的方式即第一轮存储时在这多个目标嵌入式框架(iframe)中的每个目标嵌入式框架(iframe)中均存储一个数据分片(即一组数据)或多组数据分片(即多组数据),存储一轮后,再进行下一轮存储,直到所有的数据分片(即多组数据)均存储完毕,其中,如果在轮循的途中有任何一个目标嵌入式框架(iframe)被存满,其不再进入下一次轮循。如果在这多个目标嵌入式框架(iframe)中均被存满后还剩下未存储的数据分片(即数据组);按照剩余存储容量阈值由大到小的顺序依次将剩余的数据分片存储在除目标嵌入式框架以外的其它嵌入式框架中,直到剩余的数据分片被存储完毕。第三种是不存在符合本次存储预先设置的筛选条件(即预设阈值)的目标嵌入式框架,则按照剩余存储容量阈值由大到小的顺序依次将剩余的数据分片存储在除目标嵌入式框架以外的其它嵌入式框架中,直到剩余的数据分片被存储完毕。上述方法中允许向不满足本次存储预先设置的筛选条件(即预设阈值)的嵌入式框架中存储数据,是因为在上述实施例中筛选目标嵌入式框架的依据是本次存储预先设置的筛选条件(即预设阈值),嵌入式框架的剩余存储容量小于本次存储预先设置的筛选条件(即预设阈值)并不代表嵌入式框架中不再有存储空间,因此,在筛选出的目标嵌入式框架容量不足时,允许将剩余的分片数据存储在未被筛选为目标嵌入式框架的其它嵌入式框架中。
通过上述步骤,可以实现自动管理数据分片,无需开发人员手动处理数据分片,达到了降低开发难度的目的;采用基于iframe的存储扩容方案,通过跨域iframe的技术,将数据分片存储在不同域名下的localStorage中,充分利用了浏览器的存储容量,达到了提高存储效率的目的;数据分片在存储前进行加密处理,并存储在不同域名下,有效防止数据被非法访问或篡改,达到了提高数据的安全性目的。
图3是根据本申请实施例提供的数据的读取方法的步骤流程图,如图3所示,该方法包括以下步骤:
步骤S302,接收读取指令,其中,读取指令用于指示从当前页面中读取目标数据。
在步骤S302中,当前网页页面/运行当前网页页面的设备接收指示完整的读取出缓存在当前网页页面的本地的(目标)的目标指令。
步骤S304,确定组成目标数据的多组数据,并从索引表中获取多组数据中每组数据的相关信息,其中,每组数据的相关信息,包括:每组数据的索引号、每组数据的键名、每组数据的过期时间以及每组数据的状态,每组数据的状态包括:丢失或未丢失,每组数据的索引号用于指示每组数据的存储的网络应用程序接口,索引表存储在当前页面的网络应用程序接口中。
当前网页页面/运行当前网页页面的设备在接收到读取指令后,执行步骤S304,首先确定组成读取指令指示的(目标)数据的多个数据分片(即多组数据),接下来,从存储在主页面(即当前网页页面)的网络应用程序接口(localStorage)中读取中存储多个数据分片(即多组数据)中每个数据分片(即每组数据)的索引号、键名、过期时间以及指示该数据分片(即该组数据)是丢失还是未丢失的状态信息等多组数据的相关信息的索引表。
步骤S306,依据每组数据的相关信息在索引表中查询每组数据的存储位置,得到多组数据的多个存储位置。
在步骤S306中,从在步骤S304中读取出的索引表中确定组成读取指令指示的(目标)数据的多个数据分片(即多组数据)中每个数据分片(即每组数据)的存储的网络应用程序接口(localStorage)。
步骤S308,从多个存储位置读取出多组数据,并依据索引表将多组数据合并为目标数据。
在步骤S308中,从在步骤S306中确定的多个网络应用程序接口(localStorage)中读取出组成读取指令指示的(目标)数据的多个数据分片(即多组数据),并依据索引表中记载的索引号、键名等信息将从多个网络应用程序接口(localStorage)读取出的多个数据分片(即多组数据)合并为与读取指令对应的、完整的(目标)数据。
图4是根据本申请实施例提供的数据的存储装置的结构图,如图4所示,数据的存储装置包括:获取模块40,用于获取待存储到当前页面的目标数据;分组模块42,用于对目标数据进行分组处理,得到多组数据,其中,多组数据中的每组数据的字节数均为预设字节数,预设字节数小于目标数据的字节数;存储模块44,用于将多组数据存储在当前页面的多个嵌入式框架中的多个网络应用程序接口中,并将多组数据的相关信息存储在索引表中,其中,多个嵌入式框架的属性为不可见。
数据的存储装置工作时,通过获取模块40获取待存储到当前网页页面的目标数据,通过分组模块42将获取到的目标数据转换为字符串的形式,并获取每个数据分片的最大字节数(即预设字节数);根据每个数据分片的最大字节数(即预设字节数)对转换为字符串形式的目标数据进行分片(分组)处理,得到多个数据分片(即多组数据);当本申请实施例提供的方法应用于大数据量的应用场景中时,每个数据分片(即每组数据)的字节数(即预设字节数)小于待存储到当前网页页面的目标数据的字节数;当本申请实施例提供的方法应用于小数据量的应用场景中时,每个数据分片(即每组数据)的字节数(即预设字节数)大于或者等于待存储到当前网页页面的目标数据的字节数,此时,无需对待存储到当前网页页面的目标数据进行分片(分组)处理。通过存储模块44将分组模块42分片(分组)处理得到的多个数据分片(多组数据)存储在主页面(即当前网页页面)中的多个不可见的嵌入式框架(iframe)中的网络应用程序接口(localStorage)中,并将多个数据分片(多组数据)存储在索引表中。
需要说明的是,图4所示实施例的优选实施方式可以参见图2所示实施例的相关描述,此处不再赘述。
本申请实施例还提供了一种非易失性存储介质,非易失性存储介质中存储有计算机程序,其中,在非易失性存储介质所在设备通过运行计算机程序执行以上的数据的存储方法或数据的读取方法。
上述非易失性存储介质用于存储执行以下功能的程序:获取待存储到当前页面的目标数据;对目标数据进行分组处理,得到多组数据,其中,多组数据中的每组数据的字节数均为预设字节数,预设字节数小于目标数据的字节数;将多组数据存储在当前页面的多个嵌入式框架中的多个网络应用程序接口中,并将多组数据的相关信息存储在索引表中,其中,多个嵌入式框架的属性为不可见。
本申请实施例还提供了一种电子设备,包括存储器和处理器,存储器中存储有计算机程序,处理器被设置为通过计算机程序执行以上的数据的存储方法或数据的读取方法。
上述电子设备中的处理器用于运行执行以下功能的程序:获取待存储到当前页面的目标数据;对目标数据进行分组处理,得到多组数据,其中,多组数据中的每组数据的字节数均为预设字节数,预设字节数小于目标数据的字节数;将多组数据存储在当前页面的多个嵌入式框架中的多个网络应用程序接口中,并将多组数据的相关信息存储在索引表中,其中,多个嵌入式框架的属性为不可见。
需要说明的是,上述数据的存储装置中的各个模块可以是程序模块(例如是实现某种特定功能的程序指令集合),也可以是硬件模块,对于后者,其可以表现为以下形式,但不限于此:上述各个模块的表现形式均为一个处理器,或者,上述各个模块的功能通过一个处理器实现。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对相关技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

Claims (11)

1.一种数据的存储方法,其特征在于,包括:
获取待存储到当前页面的目标数据;
对所述目标数据进行分组处理,得到多组数据,其中,所述多组数据中的每组数据的字节数均为预设字节数,所述预设字节数小于目标数据的字节数;
将所述多组数据存储在所述当前页面的多个嵌入式框架中的多个网络应用程序接口中,并将所述多组数据的相关信息存储在索引表中,其中,所述多个嵌入式框架的属性为不可见。
2.根据权利要求1所述的方法,其特征在于,所述多个嵌入式框架中每个嵌入式框架对应一个网页,且所述每个嵌入式框架对应的网页的域名为目标域名,其中,所述目标域名包括:第一类域名、第二类域名,所述第一类域名为所述当前页面的域名的子域名,所述第二类域名为与所述当前页面的域名不属于同一个域但允许所述当前页面跨域访问的其它域的域名。
3.根据权利要求1所述的方法,其特征在于,对所述目标数据进行分组处理,包括:
将所述目标数据转换为字符串;
确定所述字符串的字节数,其中,所述字符串的字节数为所述目标数据的字节数;
确定所述预设字节数,将所述目标数据的字节数与所述预设字节数的比值确定为目标数量,其中,所述目标数量为所述目标数据的分组数。
4.根据权利要求1所述的方法,其特征在于,对所述目标数据进行分组处理,还包括:
获取初始密钥,并根据所述初始密钥生成多个轮密钥;
利用所述多个轮密钥对所述每组数据进行多轮加密操作,并在最后一轮加密后输出加密后的数据,其中,所述多轮加密操作中的每轮加密操作均包括以下至少之一:对所述每组数据执行轮密钥加、字节替换、行移位和列混淆的操作。
5.根据权利要求1所述的方法,其特征在于,将所述多组数据的相关信息存储在索引表中,包括:
将所述多组数据的相关信息以对象数组的形式记录在索引表中,其中,每组数据的相关信息包括:所述每组数据的索引号、所述每组数据的键名、所述每组数据的过期时间以及所述每组数据的状态,所述每组数据的状态包括:丢失或未丢失,所述每组数据的索引号用于指示所述每组数据的存储的网络应用程序接口,所述索引表存储在所述当前页面的网络应用程序接口中。
6.根据权利要求1所述的方法,其特征在于,将所述多组数据存储在所述当前页面的多个嵌入式框架中的多个网络应用程序接口中,包括:
获取所述多个嵌入式框架中每个嵌入式框架的存储容量阈值;
将大于预设阈值的存储容量阈值对应的嵌入式框架确定为目标嵌入式框架;
将所述多组数据存储在所述目标嵌入式框架中。
7.根据权利要求6所述的方法,其特征在于,将所述多组数据存储在所述目标嵌入式框架中,包括:
在只存在一个所述目标嵌入式框架时,将所述多组数据均存储在一个所述目标嵌入式框架中;
在存在多个所述目标嵌入式框架时,获取多个目标嵌入式框架中每个目标嵌入式框架的剩余存储容量;
依据所述剩余存储容量从大到小对所述多个目标嵌入式框架进行排序,得到存储顺序;
将所述多组数据依据所述存储顺序依次存储在所述多个目标嵌入式框架中。
8.一种数据的读取方法,其特征在于,包括:
接收读取指令,其中,所述读取指令用于指示从当前页面中读取目标数据;
确定组成所述目标数据的多组数据,并从索引表中获取所述多组数据中每组数据的相关信息,其中,所述每组数据的相关信息,包括:所述每组数据的索引号、所述每组数据的键名、所述每组数据的过期时间以及所述每组数据的状态,所述每组数据的状态包括:丢失或未丢失,所述每组数据的索引号用于指示所述每组数据的存储的网络应用程序接口,所述索引表存储在所述当前页面的网络应用程序接口中;
依据所述每组数据的相关信息在索引表中查询所述每组数据的存储位置,得到所述多组数据的多个存储位置;
从所述多个存储位置读取出所述多组数据,并依据所述索引表将所述多组数据合并为所述目标数据。
9.一种数据的存储装置,其特征在于,包括:
获取模块,用于获取待存储到当前页面的目标数据;
分组模块,用于对所述目标数据进行分组处理,得到多组数据,其中,所述多组数据中的每组数据的字节数均为预设字节数,所述预设字节数小于目标数据的字节数;
存储模块,用于将所述多组数据存储在所述当前页面的多个嵌入式框架中的多个网络应用程序接口中,并将所述多组数据的相关信息存储在索引表中,其中,所述多个嵌入式框架的属性为不可见。
10.一种非易失性存储介质,其特征在于,所述非易失性存储介质中存储有计算机程序,其中,在所述非易失性存储介质所在设备通过运行所述计算机程序执行权利要求1至7中任意一项所述的数据的存储方法或权利要求8所述的数据的读取方法。
11.一种电子设备,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行权利要求1至7中任意一项所述的数据的存储方法或权利要求8所述的数据的读取方法。
CN202311156230.2A 2023-09-08 2023-09-08 数据的存储方法及装置、数据的读取方法 Pending CN116910415A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311156230.2A CN116910415A (zh) 2023-09-08 2023-09-08 数据的存储方法及装置、数据的读取方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311156230.2A CN116910415A (zh) 2023-09-08 2023-09-08 数据的存储方法及装置、数据的读取方法

Publications (1)

Publication Number Publication Date
CN116910415A true CN116910415A (zh) 2023-10-20

Family

ID=88358666

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311156230.2A Pending CN116910415A (zh) 2023-09-08 2023-09-08 数据的存储方法及装置、数据的读取方法

Country Status (1)

Country Link
CN (1) CN116910415A (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104111829A (zh) * 2014-06-25 2014-10-22 小米科技有限责任公司 数据存储方法及装置
CN106776961A (zh) * 2016-12-05 2017-05-31 广州阿里巴巴文学信息技术有限公司 网页本地存储空间扩容方法、浏览器客户端及电子设备

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104111829A (zh) * 2014-06-25 2014-10-22 小米科技有限责任公司 数据存储方法及装置
CN106776961A (zh) * 2016-12-05 2017-05-31 广州阿里巴巴文学信息技术有限公司 网页本地存储空间扩容方法、浏览器客户端及电子设备

Similar Documents

Publication Publication Date Title
CN106657197B (zh) 文件上传的方法和装置
CN102243714B (zh) 二维码的加密系统
CN104680077B (zh) 一种加密图片的方法、查看图片的方法、系统和终端
CN101217638A (zh) 视频文件分段下载的方法、系统及装置
CN105681380B (zh) 客户端离线化方法及其系统
CN106612308B (zh) 数据传输方法及装置
KR20190022660A (ko) 일치하는 컨텐츠를 식별하는 시스템 및 방법
CN104615917A (zh) 一种伪装图片的方法、查看图片的方法、系统和终端
CN107832625B (zh) 一种文档的处理方法和装置
JP5753946B2 (ja) フォントファイルをダウンロードする方法およびシステム
US10360354B1 (en) Method and apparatus of performing distributed steganography of a data message
CN107526755B (zh) 数据的处理方法及装置
CN105589879A (zh) 客户端下载图片的方法及其装置
CN104462242B (zh) 网页回流量统计方法及装置
CN108897592A (zh) 一种软件展示方法及相关设备
CN106899558B (zh) 访问请求的处理方法、装置和存储介质
CN111371963B (zh) 图像处理方法和装置、存储介质和电子设备
CN104361004B (zh) 浏览器收藏夹数据的处理方法与浏览器
CN108460044B (zh) 数据的处理方法和装置
CN111277569B (zh) 一种网络报文解码方法、装置及电子设备
CN116910415A (zh) 数据的存储方法及装置、数据的读取方法
CN111400316A (zh) 数据获取方法、装置、存储介质及电子装置
Mohamad et al. myKarve: JPEG image and thumbnail carver
CN107172165B (zh) 一种数据同步方法及装置
CN114880604A (zh) 数据处理、数据发送和数据获取方法及装置

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