掌桥专利:专业的专利平台
掌桥专利
首页

浏览器共享会话存储的处理方法、装置、设备及存储介质

文献发布时间:2023-06-19 18:58:26


浏览器共享会话存储的处理方法、装置、设备及存储介质

技术领域

本申请涉及计算机技术领域,具体涉及一种浏览器共享会话存储的处理方法、浏览器共享会话存储装置、计算机设备以及计算机可读存储介质。

背景技术

在网站开发过程中,技术人员时常需要把数据临时保存到本地存储中,且要求不同窗口内可以共享、窗口关掉的时候需要清除保存的数据。

在相关技术中,上述需求可以通过服务端的支持实现,但过程复杂进而导致成本提高;上述需求也可以利用cookie或localStorage可以跨窗口共享的特性实现,但如果浏览器出现崩溃或者浏览器被直接结束任务时,则保存的数据就无法正常清除掉。

发明内容

本申请提供了一种浏览器共享会话存储的处理方法、浏览器共享会话存储装置、计算机设备以及计算机可读存储介质。

本申请提供一种浏览器共享会话存储处理方法,用于数据接收窗口,包括:

在监听除所述数据接收窗口外的其他窗口的存储变化事件的状态下:

向数据源窗口发起数据获取请求;

在监听到所述数据源窗口本地存储的键名为第一预设键名时,获取所述数据源窗口本地存储的键值;

根据所述数据源窗口本地存储的键值,确定所述数据源窗口的会话存储;

将所述数据源窗口的会话存储确定为所述数据接收窗口的会话存储,以实现浏览器会话存储的共享。

如此,本申请中,数据接收窗口可以通过监听存储变化事件来侦测数据的传输事件,在需要进行数据共享时数据接收窗口可以主动向数据源窗口开启数据共享过程,利用本地存储(localStorage)可以跨窗口共享的特性,获取到数据源窗口的会话存储数据(sessionStorage)并将之覆写至数据接收窗口的会话存储数据,而会话存储数据具有回收机制,在浏览器在任意情况下关闭时能够直接被清除,从而实现了浏览器内跨窗口共享存储数据且在浏览器关闭时清除的效果。

在某些实施方式中,所述向数据源窗口发起数据获取请求,包括:

将所述数据接收窗口本地存储的键名确定为第二预设键名;

将所述数据接收窗口本地存储的键值确定为预设键值。

如此,数据接收窗口可以直接通过修改本地存储(localStorage)的键名与键值的方式,也即一种触发存储变化事件的方式来向数据源窗口发起数据获取的请求。

在某些实施方式中,所述预设键值包括时间戳。

如此,通过在键值处设置时间戳,能够使发起数据获取请求的时间点更明确,实现对数据共享过程的时间控制。。

在某些实施方式中,所述根据所述数据源窗口本地存储的键值,确定所述数据源窗口的会话存储,包括:

将所述数据源窗口本地存储的键值按照预设编码方式解码,得到所述数据源窗口的会话存储。

如此,数据接收窗口可以直接将获取到的键值还原成会话存储数据的编码前的状态,也即数据源窗口的会话存储。

本申请还提供一种浏览器共享会话存储的处理方法,用于数据源窗口,所述方法包括:

在监听除所述数据源窗口外的其他窗口的存储变化事件的状态下:

在监听到所述数据接收窗口发起的数据获取请求时,根据所述数据源窗口的会话存储,确定响应会话存储;

将所述响应会话存储确定为所述数据源窗口本地存储的键值;

将所述数据源窗口本地存储的键名确定为第一预设键名,使所述数据接收窗口获取所述数据源窗口本地存储的键值,以实现浏览器会话存储的共享。

如此,本申请中,数据源窗口可以通过监听存储变化时间来侦测数据的传输事件,在需要进行数据共享时,在监听到数据接收窗口的数据获取请求后,将会话存储进行预处理以得到响应会话存储,将相应会话存储写入本地存储的键值以准备传输,并修改本地存储的键名以使数据接收窗口能够监听到存储变化事件的发生,进而实现数据源窗口向数据接收窗口的数据传输,从而实现跨窗口共享会话存储数据。

在某些实施方式中,所述在监听到所述数据接收窗口发起的数据获取请求时,根据所述数据源窗口的会话存储,确定响应会话存储,包括:

将所述数据源窗口的会话存储按照预设编码方式编码,得到响应会话存储。

如此,会话存储数据的预处理过程采用预设编码方式对会话存储数据进行编码得到响应会话存储,以便于后续步骤中将响应会话存储写入数据源窗口本地存储的键值。

本申请提供一种浏览器共享会话存储装置,包括:

第一监听模块,用于监听除数据接收窗口外的其他窗口的存储变化事件;

第一数据处理模块,用于向数据源窗口发起数据获取请求;

信息获取模块,用于在监听到所述数据源窗口本地存储的键名为第一预设键名时,获取所述数据源窗口本地存储的键值;以及

第一数据写入模块,用于将所述数据源窗口的会话存储确定为所述数据接收窗口的会话存储;

所述第一数据处理模块还用于根据所述数据源窗口本地存储的键值,确定所述数据源窗口的会话存储。

本申请还提供一种浏览器共享会话存储装置,包括:

第二监听模块,用于监听除数据源窗口外的其他窗口的存储变化事件;

第二数据处理模块,用于在监听到所述数据接收窗口发起的数据获取请求时,根据所述数据源窗口的会话存储,确定响应会话存储;

第二数据写入模块,用于将所述响应会话存储确定为所述数据源窗口本地存储的键值,以及用于将所述数据源窗口本地存储的键名确定为第一预设键名。

本申请的计算机设备,包括处理器和存储器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,实现上述的方法。

本申请的计算机可读存储介质,存储有计算机程序,当所述计算机程序被一个或多个处理器执行时,实现上述的方法。

本申请的实施方式的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实施方式的实践了解到。

附图说明

本申请的上述和/或附加的方面和优点从结合下面附图对实施方式的描述中将变得明显和容易理解,其中:

图1是本申请提供的一种浏览器共享会话存储的处理方法的流程示意图;

图2是本申请提供的一种浏览器共享会话存储的处理方法的流程示意图;

图3是本申请某具体实施方式的运行时序图;

图4是本申请提供的浏览器共享会话存储装置的模块示意图。

具体实施方式

下面将结合附图对本申请技术方案的实施例进行详细的描述。以下实施例仅用于更加清楚地说明本申请的技术方案,因此只作为示例,而不能以此来限制本申请的保护范围。

除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同;本文中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请;本申请的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。

在本申请实施例的描述中,技术术语“第一”“第二”等仅用于区别不同对象,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量、特定顺序或主次关系。在本申请实施例的描述中,“多个”的含义是两个以上,除非另有明确具体的限定。

在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。

在本申请实施例的描述中,术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。

在本申请实施例的描述中,术语“多个”指的是两个以上(包括两个),同理,“多组”指的是两组以上(包括两组),“多片”指的是两片以上(包括两片)。

在本申请实施例的描述中,除非另有明确的规定和限定,技术术语“安装”“相连”“连接”“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;也可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本申请实施例中的具体含义。

如图1所示,本申请提供一种浏览器共享会话存储的处理方法,用于数据接收窗口,包括:

在监听除数据接收窗口外的其他窗口的存储变化事件的状态下:

001:向数据源窗口发起数据获取请求;

002:在监听到数据源窗口本地存储的键名为第一预设键名时,获取数据源窗口本地存储的键值;

003:根据数据源窗口本地存储的键值,确定数据源窗口的会话存储;

004:将数据源窗口的会话存储确定为数据接收窗口的会话存储,以实现浏览器会话存储的共享。

如图4所示,本申请还提供了一种浏览器共享会话存储装置10。本申请的浏览器共享会话存储的处理方法可以由本申请的浏览器共享会话存储装置10实现。具体地,浏览器共享会话存储装置10包括第一监听模块11、第一数据处理模块12、信息获取模块13以及第一数据写入模块14。其中,第一监听模块11用于监听除数据接收窗口外的其他窗口的存储变化事件。第一数据处理模块12用于向数据源窗口发起数据获取请求,以及用于根据数据源窗口本地存储的键值,确定数据源窗口的会话存储。信息获取模13块用于在监听到数据源窗口本地存储的键名为第一预设键名时,获取数据源窗口本地存储的键值。第一数据写入模块14用于将数据源窗口的会话存储确定为数据接收窗口的会话存储。

本申请还提供了一种计算机设备,计算机设备包括存储器和处理器。本申请的浏览器共享会话存储的处理方法可以由本申请的计算机设备实现。具体地,存储器中存储有计算机程序,处理器用于监听除数据接收窗口外的其他窗口的存储变化事件,以及用于向数据源窗口发起数据获取请求,以及用于在监听到数据源窗口本地存储的键名为第一预设键名时,获取数据源窗口本地存储的键值,以及用于将数据源窗口的会话存储确定为数据接收窗口的会话存储,以及用于根据数据源窗口本地存储的键值,确定数据源窗口的会话存储。

具体地,在浏览器中,每个窗口都能够监听除自身以外其他窗口的任何存储变化事件,当监听到存储变化事件之后窗口可以根据预设的程序对该存储变化事件做出特定的回应。本申请提供的方案是在数据源窗口将其sessionStorage数据写入localStorage数据键值后,数据接收窗口监听到存储变化事件并利用localStorage可以跨窗口共享传输的特性获取数据源窗口的localStorage键值,并进行数据处理得到数据源窗口的sessionStorage数据。

为了实现跨窗口共享sessionStorage,数据接收窗口需要监听数据源窗口的存储变化事件以获取数据,同时数据源窗口也需要监听数据接收窗口的存储变化事件以获知数据共享过程的开始,此处的存储变化事件具体包括localStorage变化事件以及sessionStorage变化事件,监听存储变化事件是本申请提供的方法的运行基础。在数据共享过程开始时,由数据接收窗口向数据源窗口发起数据获取请求,该请求具体表现为一个存储变化事件。当数据源窗口监听到这个存储变化事件后,会对其localStorage的键值与键名进行修改,此修改也是一个存储变化事件,可以被数据接收窗口监听到。当数据接收窗口监听到数据源窗口的localStorage的键名为第一预设键名时,直接获取数据源窗口的localStorage的键值,并对该键值进行数据处理,处理后即可得到数据源窗口的sessionStorage数据,这里的第一预设键名是一个预先设定好的键名,主要用于表示此时数据源窗口localStorage的键值已经设置完成。最后数据接收窗口将该数据覆写自身的sessionStorage数据,即完成两窗口间sessionStorage数据的共享过程。

综上,本申请中,数据接收窗口可以通过监听存储变化事件来侦测数据的传输事件,在需要进行数据共享时数据接收窗口可以主动向数据源窗口开启数据共享过程,利用本地存储(localStorage)可以跨窗口共享的特性,获取到数据源窗口的会话存储数据(sessionStorage)并将之覆写至数据接收窗口的会话存储数据,而会话存储数据具有回收机制,在浏览器在任意情况下关闭时能够直接被清除,从而实现了浏览器内跨窗口共享数据且在浏览器关闭时清除的效果。

在某些实施方式中,步骤001具体包括:

0011:将数据接收窗口本地存储的键名确定为第二预设键名;

0012:将数据接收窗口本地存储的键值确定为预设键值。

在某些实施方式中,第一数据处理模块12用于将数据接收窗口本地存储的键名确定为第二预设键名,以及用于将数据接收窗口本地存储的键值确定为预设键值。

在某些实施方式中,处理器用于将数据接收窗口本地存储的键名确定为第二预设键名,以及将将数据接收窗口本地存储的键值确定为预设键值。

具体地,数据接收窗口向数据源窗口发起的数据获取请求具体表现为一个存储变化事件,该事件可以被数据源窗口监听到。上述存储变化事件包括两个部分,一部分是数据接收窗口将其localStorage的键名修改为第二预设键名,另一部分是数据接收窗口将其localStorage的键值改为预设键值。第二预设键名以及预设键值都用于使数据源窗口获知数据共享过程已经开始,数据接收窗口准备获取数据源窗口的sessionStorage数据,其中预设键值仅用作标识,其内容可以是任意字符、任意字符串、任意数字等等,在此不做具体限定。

如此,数据接收窗口可以直接通过修改localStorage的键名与键值的方式,也即一种触发存储变化事件的方式来向数据源窗口发起数据获取的请求。

在某些实施方式中,预设键值包括时间戳。

具体地,由于预设键值仅用作标识,没有具体意义,因此可以在有需求的情况下将有意义的信息数据写入数据接收窗口localStorage的键值以充当预设键值,比如时间戳信息。当预设键值为时间戳时,数据获取请求即包含一个时间点信息,可以控制数据源窗口发起存储变化事件的时间点,从而实现对数据共享过程的时间控制。

如此,通过在键值处设置时间戳,能够使发起数据获取请求的时间点更明确,实现对数据共享过程的时间控制。

在某些实施方式中,步骤003具体包括:

0031:将数据源窗口本地存储的键值按照预设编码方式解码,得到数据源窗口的会话存储。

在某些实施方式中,第一数据处理模块12还用于根据数据源窗口本地存储的键值,确定数据源窗口的会话存储。

在某些实施方式中,处理器还用于根据数据源窗口本地存储的键值,确定数据源窗口的会话存储。

具体地,因为localStorage键值的格式要求,数据源窗口的sessionStorage数据不可能直接写入localStorage的键值,因此在写入前会按照预设的编码方式进行编码,预设的编码方式可以为base64、json等,编码后数据源窗口的sessionStorage数据一般以字符串形式存在。所以,在数据接收窗口获取到数据源窗口localStorage的键值后,需要按照预设的编码方式进行解码,将获取到的字符串转换成编码之前的状态,也即确定了数据源窗口的sessionStorage数据。

如此,数据接收窗口可以直接将获取到的键值还原成会话存储数据的编码前的状态,也即数据源窗口的会话存储。

如图2所示,本申请还提供一种浏览器共享会话存储的处理方法,用于数据源窗口,包括以下步骤:

在监听除数据源窗口外的其他窗口的存储变化事件的状态下:

011:在监听到数据接收窗口发起的数据获取请求时,根据数据源窗口的会话存储,确定响应会话存储;

012:将响应会话存储确定为数据源窗口本地存储的键值;

013:将数据源窗口本地存储的键名确定为第一预设键名,使数据接收窗口获取数据源窗口本地存储的键值。

如图4所示,本申请还提供一种浏览器共享会话存储装置20,本申请的浏览器共享会话存储的处理方法可以由本申请的浏览器共享会话存储装置20实现。浏览器共享会话存储装置20包括:第二监听模块21、第二数据处理模块22以及第二数据写入模块23。具体地,第二监听模块21用于监听除数据源窗口外的其他窗口的存储变化事件,第二数据处理模块22用于在监听到数据接收窗口发起的数据获取请求时,根据数据源窗口的会话存储,确定响应会话存储,第二数据写入模块23用于将响应会话存储确定为数据源窗口本地存储的键值,以及用于将数据源窗口本地存储的键名确定为第一预设键名。

处理器还用于监听除数据源窗口外的其他窗口的存储变化事件,以及用于在监听到数据接收窗口发起的数据获取请求时,根据数据源窗口的会话存储,确定响应会话存储,以及用于将响应会话存储确定为数据源窗口本地存储的键值,以及用于将数据源窗口本地存储的键名确定为第一预设键名。

具体地,同样的数据共享过程,数据源窗口的动作如下所述:在保持监听除数据源窗口以外浏览器中其他窗口的存储变化事件的前提下,也即在维持数据共享过程的运行基础的前提下,当监听到数据接收窗口发起的数据获取请求时,将数据源窗口的sessionStorage数据进行预处理,得到一条响应会话存储,响应会话存储的数据类型可以是字符串、文本文件或其他符合localStorage键值的存储格式的数据类型。然后将响应会话存储写入到localStorage的键值中,准备发送给数据接收窗口。最后将数据源窗口的localStorage的键名修改为第一预设键名,第一预设键名的最主要目的是表示localStorage的键值已经设置好了,数据共享的准备工作已完成。在键值与键名都修改完成后,数据接收窗口即可以监听到这一存储变化事件,然后做出获取数据源窗口localStorage数据的动作,实现数据共享过程。

综上,本申请中,数据源窗口可以通过监听存储变化时间来侦测数据的传输事件,在需要进行数据共享时,在监听到数据接收窗口的数据获取请求后,将会话存储进行预处理以得到响应会话存储,将相应会话存储写入本地存储的键值以准备传输,并修改本地存储的键名以使数据接收窗口能够监听到存储变化事件的发生,进而实现数据源窗口向数据接收窗口的数据传输,从而实现跨窗口共享会话存储数据。

在某些实施方式中,步骤011具体包括:

0111:将所述数据源窗口的会话存储按照预设编码方式编码,得到响应会话存储。

在某些实施方式中,第二数据处理模块22还用于将所述数据源窗口的会话存储按照预设编码方式编码,得到响应会话存储。

在某些实施方式中,处理器还用于将所述数据源窗口的会话存储按照预设编码方式编码,得到响应会话存储。

具体地,数据源窗口的sessionStorage数据的预处理过程可以采用预设的编码方式对数据进行编码,预设的编码方式可以为base64、json等,编码后数据源窗口的sessionStorage数据一般以字符串形式存在,故得到的响应会话存储也是以字符串的形式存在,方便向localStorage的键值中写入。

上述各实施方式的执行时序请参阅图3所示的事件与时序。

本申请还提供了一种计算机可读存储介质,存储有计算机程序,当计算机程序被一个或多个处理器执行时,实现上述的方法。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。

最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围,其均应涵盖在本申请的权利要求和说明书的范围当中。尤其是,只要不存在结构冲突,各个实施例中所提到的各项技术特征均可以任意方式组合起来。本申请并不局限于文中公开的特定实施例,而是包括落入权利要求的范围内的所有技术方案。

相关技术
  • 一种会话生成方法、装置、终端设备及存储介质
  • 一种会话信息同步的方法及装置、电子设备、存储介质
  • 基于会话的信息推送方法、装置、计算机设备及存储介质
  • 语音处理方法及装置、家电设备、存储介质电子装置
  • 文本处理方法、装置、设备、计算机设备和存储介质
  • 会话共享方法、装置、电子设备及可读存储介质
  • 会话共享方法、装置、电子设备及可读存储介质
技术分类

06120115751301