网页数据存储方法、装置、设备及存储介质与流程

文档序号:18869958发布日期:2019-10-14 19:18阅读:207来源:国知局
网页数据存储方法、装置、设备及存储介质与流程

本公开涉及数据处理技术领域,尤其涉及一种网页数据存储方法、装置、设备及存储介质。



背景技术:

在用户编辑网页时,网页数据会被存储到服务器上,以便于用户能够获取到历史网页数据。

目前,网页数据存储需要用户的终端保持联网状态,即只有在联网状态下,用户编辑的网页数据才能够被传输到服务器中。

但是,在实际场景中,用户的网络环境经常处于不稳定状态,例如在进入电梯、地铁等等场景时,用户编辑的某些网页数据将无法被存储到服务器中,从而导致网页数据的丢失,数据稳定性差,用户体验不佳。



技术实现要素:

本公开提供一种网页数据的存储方法、装置、设备及存储介质,可以离网数据的自动存储和恢复,避免网页数据的丢失,保持数据的稳定性。

第一方面,本公开提供一种网页数据存储方法,包括:

将当前标签页生成的编辑数据存储到内存和本地存储器中;

若感测到预设的触发事件,则释放所述本地存储器的所有权,并将所述内存中的编辑数据清除;

判断当前的网络状态,若当前网络状态为联网状态,则读取所述本地存储器中的编辑数据;

将所述编辑数据发送到服务器。

在一种可能的设计中,所述预设的触发事件包括:当前标签页的刷新事件,和/或当前标签页的关闭事件。

在一种可能的设计中,所述读取所述本地存储器中的编辑数据,包括:

若当前时刻存在至少两个标签页同时打开,则获取当前时刻对应的所有标签页的心跳信号;

根据所述心跳信号,更新所述本地存储器的时间戳,并向所述标签页发布所述本地存储器的所有权;

判断当前的网络状态是否为联网状态,若当前状态为联网状态,则采用原子锁,使得具备相同心跳信号的任一标签页从所述本地存储器中读取编辑数据;其中,当具备相同心跳信号的任一标签页从所述本地存储器中读取编辑数据之后,其他具备相同心跳信号的标签页被禁止从所述本地存储器中读取编辑数据。

在一种可能的设计中,在将所述编辑数据发送到服务器之后,还包括:

判断所述服务器是否成功接收到所述编辑数据;

若所述服务器未成功接收到所述编辑数据,则在用户的终端界面上显示所述编辑数据,或者重新向所述服务器发送编辑数据,直到所述服务器成功接收到所述编辑数据。

在一种可能的设计中,还包括:

若所述服务器成功接收到所述编辑数据,则清除所述内存和本地数据中的编辑数据。

第二方面,本公开还提供一种网页数据存储装置,包括:

存储模块,用于将当前标签页生成的编辑数据存储到内存和本地存储器中;

感测模块,用于在感测到预设的触发事件时,释放所述本地存储器的所有权,并将所述内存中的编辑数据清除;

读取模块,用于判断当前网络状态为联网状态时,读取所述本地存储器中的编辑数据;

发送模块,用于将所述编辑数据发送到服务器。

在一种可能的设计中,所述预设的触发事件包括:当前标签页的刷新事件,和/或当前标签页的关闭事件。

在一种可能的设计中,所述读取模块,具体用于:

若当前时刻存在至少两个标签页同时打开,则获取当前时刻对应的所有标签页的心跳信号;

根据所述心跳信号,更新所述本地存储器的时间戳,并向所述标签页发布所述本地存储器的所有权;

判断当前的网络状态是否为联网状态,若当前状态为联网状态,则采用原子锁,使得具备相同心跳信号的任一标签页从所述本地存储器中读取编辑数据;其中,当具备相同心跳信号的任一标签页从所述本地存储器中读取编辑数据之后,其他具备相同心跳信号的标签页被禁止从所述本地存储器中读取编辑数据。

在一种可能的设计中,还包括:

判断模块,用于判断所述服务器是否成功接收到所述编辑数据;

处理模块,用于在所述服务器未成功接收到所述编辑数据时,在用户的终端界面上显示所述编辑数据,或者重新向所述服务器发送编辑数据,直到所述服务器成功接收到所述编辑数据。

在一种可能的设计中,还包括:

清除模块,用于在所述服务器成功接收到所述编辑数据时,清除所述内存和本地数据中的编辑数据。

第三方面,本公开还提供一种电子设备,包括:

处理器;以及,

存储器,用于存储所述处理器的可执行指令;

其中,所述处理器配置为经由执行所述可执行指令来执行第一方面中任意一种网页数据存储方法。

第四方面,本公开实施例还提供一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面中任意一种网页数据存储方法。

本公开提供一种网页数据存储方法、装置、设备及存储介质,通过将当前标签页生成的编辑数据存储到内存和本地存储器中;若感测到预设的触发事件,则释放所述本地存储器的所有权,并将所述内存中的编辑数据清除;判断当前的网络状态,若当前网络状态为联网状态,则读取所述本地存储器中的编辑数据;将所述编辑数据发送到服务器。从而可实现离网数据的自动存储和恢复,避免网页数据的丢失,保持数据的稳定性。

附图说明

为了更清楚地说明本公开实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本公开根据一示例实施例示出的网页数据存储方法的原理示意图;

图2为本公开根据一示例实施例示出的网页数据存储方法的流程示意图;

图3为本公开根据另一示例实施例示出的网页数据存储方法的流程示意图;

图4为本公开根据一示例实施例示出的网页数据存储装置的结构示意图;

图5为本公开根据另一示例实施例示出的网页数据存储装置的结构示意图;

图6是本公开根据一示例实施例示出的电子设备的结构示意图。

通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。

具体实施方式

为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。

本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

在用户编辑网页时,网页数据会被存储到服务器上,以便于用户能够获取到历史网页数据。目前,网页数据存储需要用户的终端保持联网状态,即只有在联网状态下,用户编辑的网页数据才能够被传输到服务器中。但是,在实际场景中,用户的网络环境经常处于不稳定状态,例如在进入电梯、地铁等等场景时,用户编辑的某些网页数据将无法被存储到服务器中,从而导致网页数据的丢失,数据稳定性差,用户体验不佳。随着web技术的发展,网页应用越来越复杂化,除了希望保持数据在联网时存到服务器外,用户也希望可以网页在断网的场景下也能编辑使用,这就涉及到网页数据断网时的存储,联网时恢复及相关的冲突解决。

针对上述技术问题,本公开提供一种方法,可以离网数据的自动存储和恢复,避免网页数据的丢失,保持数据的稳定性。例如,在一些网络不稳定的场景下,比如电梯,地铁等,进行网页应用实时编辑可能会导致数据的丢失,网页数据离线存储技术可以使用本地网页产生的所有数据都先存到本地存储,并尝试发送到服务器,发送成功则删掉本地的数据,发送失败或关闭计算机也不会导致数据丢失,重启后仍可以尝试重发,保证用户数据的稳定性。

图1为本公开根据一示例实施例示出的网页数据存储方法的原理示意图,如图1所示,在网页数据编辑时,将当前的标签页生成的编辑数据存储到内存和本地存储器中。这样数据持久化在本地,只有发送成功时才会删除掉在本地存储的数据,可以保证用户数据的稳定性。需要说明的是,本步骤不限定当前网络的状态,即无论是联网状态,还是断网状态,均可以执行该步骤,从而实在在本地存储器和内存中保存编辑的数据。例如图中,taba和tabb开始编辑,并在本地存储中保持心跳来证明自己持有本地存储所有权。若taba或tabb发生编辑时,将编辑的数据同时存到内存和本地存储indexdb中。然后,判断当前网络状态,若在联网状态下,则发送读取本地存储indexdb中的编辑数据到服务端,失败则重试。发送成功后删除内存和indexdb中的数据。若在断网状态下,则将编辑数据持续存到内存和indexdb中,如果网络恢复则走联网逻辑。用户再次打开浏览器,多tab同时打开网页应用,开始初始化数据,并保持心跳。在indexdb中使用原子锁拿到已释放的未发送成功的数据并加载到ui上,如果联网,开始恢复数据。还可以在感测到预设的触发事件,则释放本地存储器的所有权,并将内存中的编辑数据清除。其中,预设的触发事件包括:当前标签页的刷新事件,和/或当前标签页的关闭事件。例如,当网页进行刷新时或者关闭网页时,此时相当于用户发出明确指示需要获取新的网页数据,而将本地存储器的编辑数据当作缓存垃圾进行清除,回收存储空间。

图2为本公开根据一示例实施例示出的网页数据存储方法的流程示意图,如图2所示,本实施例提供的网页数据存储方法,包括:

步骤101、将当前标签页生成的编辑数据存储到内存和本地存储器中。

本实施例中,在网页数据编辑时,将当前的标签页生成的编辑数据存储到内存和本地存储器中。这样数据持久化在本地,只有发送成功时才会删除掉在本地存储的数据,可以保证用户数据的稳定性。需要说明的是,本步骤不限定当前网络的状态,即无论是联网状态,还是断网状态,均可以执行该步骤,从而实在在本地存储器和内存中保存编辑的数据。

步骤102、若感测到预设的触发事件,则释放本地存储器的所有权,并将内存中的编辑数据清除。

本实施例中,当发送成功时,会删除掉在本地存储器和内存中的数据。还可以在感测到预设的触发事件,则释放本地存储器的所有权,并将内存中的编辑数据清除。其中,预设的触发事件包括:当前标签页的刷新事件,和/或当前标签页的关闭事件。例如,当网页进行刷新时或者关闭网页时,此时相当于用户发出明确指示需要获取新的网页数据,而将本地存储器的编辑数据当作缓存垃圾进行清除,回收存储空间。

步骤103、判断当前的网络状态,若当前网络状态为联网状态,则读取本地存储器中的编辑数据。

本实施例中,首先,判断当前的网络状态。若离线状态,则无法与网络服务器建立连接,此时只将编辑数据存储到内存和本地存储器中即可,继续等待网络连接时再进行发送,若当前网络状态为联网状态,则读取本地存储器中的编辑数据。

在一种可能的实施方式中,若当前时刻存在至少两个标签页同时打开,则获取当前时刻对应的所有标签页的心跳信号;根据心跳信号,更新本地存储器的时间戳,并向标签页发布本地存储器的所有权;判断当前的网络状态是否为联网状态,若当前状态为联网状态,则采用原子锁,使得具备相同心跳信号的任一标签页从本地存储器中读取编辑数据;其中,当具备相同心跳信号的任一标签页从本地存储器中读取编辑数据之后,其他具备相同心跳信号的标签页被禁止从本地存储器中读取编辑数据。

具体地,本地存储存在未发送成功的数据时,可能会出现多个浏览器同时打开网页应用的场景,这时如果常规处理,则可能会多个浏览器页面同时读取到本地数据并发送,这样会产生重复数据,与用户期望不一致。所以这里需要使用基于共享内存的互斥锁来实现一个原子性的读取本地数据并删除的功能,这样即使多个浏览器页面同时打开,也只会有一个页面能读取到本地存储的数据并恢复,避免了数据重复。例如,taba和tabb开始编辑,并在本地存储中保持心跳来证明自己持有本地存储所有权。若taba或tabb发生编辑时,将编辑的数据同时存到内存和本地存储indexdb中。然后,判断当前网络状态,若在联网状态下,则发送读取本地存储indexdb中的编辑数据到服务端,失败则重试。发送成功后删除内存和indexdb中的数据。若在断网状态下,则将编辑数据持续存到内存和indexdb中,如果网络恢复则走联网逻辑。用户再次打开浏览器,多tab同时打开网页应用,开始初始化数据,并保持心跳。在indexdb中使用原子锁拿到已释放的未发送成功的数据并加载到ui上,如果联网,开始恢复数据。

步骤104、将编辑数据发送到服务器。

本实施例中,若在联网状态下,则发送读取本地存储indexdb中的编辑数据到服务端。

本实施例,通过将当前标签页生成的编辑数据存储到内存和本地存储器中;若感测到预设的触发事件,则释放本地存储器的所有权,并将内存中的编辑数据清除;判断当前的网络状态,若当前网络状态为联网状态,则读取本地存储器中的编辑数据;将编辑数据发送到服务器。从而可实现离网数据的自动存储和恢复,避免网页数据的丢失,保持数据的稳定性。

图3为本公开根据另一示例实施例示出的网页数据存储方法的流程示意图,如图3所示,本实施例提供的网页数据存储方法,包括:

步骤201、将当前标签页生成的编辑数据存储到内存和本地存储器中。

步骤202、若感测到预设的触发事件,则释放本地存储器的所有权,并将内存中的编辑数据清除。

步骤203、判断当前的网络状态,若当前网络状态为联网状态,则读取本地存储器中的编辑数据。

步骤204、将编辑数据发送到服务器。

本实施例中,步骤201~步骤204的具体实现过程和技术原理请参见图2所示的方法中步骤101~步骤s04中的相关描述,此处不再赘述。

步骤205、判断服务器是否成功接收到编辑数据。

本实施例中,在将编辑数据发送到服务器之后,还可以通过网页状态码来判断服务器是否成功接收到编辑数据。

步骤206、若服务器未成功接收到编辑数据,则在用户的终端界面上显示编辑数据,或者重新向服务器发送编辑数据,直到服务器成功接收到编辑数据。

本实施例中,还可以在将编辑数据发送服务器失败后,重新向服务器发送编辑数据,直到服务器成功接收到编辑数据。

步骤207、若服务器成功接收到编辑数据,则清除内存和本地数据中的编辑数据。

本实施例中,可以通过网页状态码来判断服务器是否成功接收到编辑数据。若服务器成功接收到编辑数据,则清除内存和本地数据中的编辑数据。

本实施例,通过将当前标签页生成的编辑数据存储到内存和本地存储器中;若感测到预设的触发事件,则释放本地存储器的所有权,并将内存中的编辑数据清除;判断当前的网络状态,若当前网络状态为联网状态,则读取本地存储器中的编辑数据;将编辑数据发送到服务器。从而可实现离网数据的自动存储和恢复,避免网页数据的丢失,保持数据的稳定性。

另外,本实施例还可以在将编辑数据发送到服务器之后,还可以判断服务器是否成功接收到编辑数据;若服务器未成功接收到编辑数据,则在用户的终端界面上显示编辑数据,或者重新向服务器发送编辑数据,直到服务器成功接收到编辑数据;若服务器成功接收到编辑数据,则清除内存和本地数据中的编辑数据。

图4为本公开根据一示例实施例示出的网页数据存储装置的结构示意图,如图4所示,本实施例提供的网页数据存储装置30,包括:

存储模块301,用于将当前标签页生成的编辑数据存储到内存和本地存储器中;

感测模块302,用于在感测到预设的触发事件时,释放本地存储器的所有权,并将内存中的编辑数据清除;

读取模块303,用于判断当前网络状态为联网状态时,读取本地存储器中的编辑数据;

发送模块304,用于将编辑数据发送到服务器。

在一种可能的设计中,预设的触发事件包括:当前标签页的刷新事件,和/或当前标签页的关闭事件。

在一种可能的设计中,读取模块302,具体用于:

若当前时刻存在至少两个标签页同时打开,则获取当前时刻对应的所有标签页的心跳信号;

根据心跳信号,更新本地存储器的时间戳,并向标签页发布本地存储器的所有权;

判断当前的网络状态是否为联网状态,若当前状态为联网状态,则采用原子锁,使得具备相同心跳信号的任一标签页从本地存储器中读取编辑数据;其中,当具备相同心跳信号的任一标签页从本地存储器中读取编辑数据之后,其他具备相同心跳信号的标签页被禁止从本地存储器中读取编辑数据。

本实施例提供的装置,可以用于执行图2所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

本实施例,通过将当前标签页生成的编辑数据存储到内存和本地存储器中;若感测到预设的触发事件,则释放本地存储器的所有权,并将内存中的编辑数据清除;判断当前的网络状态,若当前网络状态为联网状态,则读取本地存储器中的编辑数据;将编辑数据发送到服务器。从而可实现离网数据的自动存储和恢复,避免网页数据的丢失,保持数据的稳定性。

图5为本公开根据另一示例实施例示出的网页数据存储装置的结构示意图,如图5所示,本实施例提供的网页数据存储装置,还包括:

在一种可能的设计中,还包括:

判断模块305,用于判断服务器是否成功接收到编辑数据;

处理模块306,用于在服务器未成功接收到编辑数据时,在用户的终端界面上显示编辑数据,或者重新向服务器发送编辑数据,直到服务器成功接收到编辑数据。

在一种可能的设计中,还包括:

清除模块307,用于在服务器成功接收到编辑数据时,清除内存和本地数据中的编辑数据。

本实施例提供的装置,可以用于执行图2、图3所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

本实施例,通过将当前标签页生成的编辑数据存储到内存和本地存储器中;若感测到预设的触发事件,则释放本地存储器的所有权,并将内存中的编辑数据清除;判断当前的网络状态,若当前网络状态为联网状态,则读取本地存储器中的编辑数据;将编辑数据发送到服务器。从而可实现离网数据的自动存储和恢复,避免网页数据的丢失,保持数据的稳定性。

另外,本实施例还可以在将编辑数据发送到服务器之后,还可以判断服务器是否成功接收到编辑数据;若服务器未成功接收到编辑数据,则在用户的终端界面上显示编辑数据,或者重新向服务器发送编辑数据,直到服务器成功接收到编辑数据;若服务器成功接收到编辑数据,则清除内存和本地数据中的编辑数据。

图6是本公开根据一示例实施例示出的电子设备的结构示意图,如图6所示,本实施例提供的一种电子设备40,包括:

处理器401;以及,

存储器402,用于存储处理器的可执行指令,该存储器还可以是flash(闪存);

其中,处理器401配置为经由执行可执行指令来执行上述方法中的各个步骤。具体可以参见前面方法实施例中的相关描述。

可选地,存储器402既可以是独立的,也可以跟处理器401集成在一起。

当存储器402是独立于处理器401之外的器件时,电子设备40,还可以包括:

总线403,用于连接处理器401以及存储器402。

本实施例还提供一种可读存储介质,可读存储介质中存储有计算机程序,当电子设备的至少一个处理器执行该计算机程序时,电子设备执行上述的各种实施方式提供的方法。

本实施例还提供一种程序产品,该程序产品包括计算机程序,该计算机程序存储在可读存储介质中。电子设备的至少一个处理器可以从可读存储介质读取该计算机程序,至少一个处理器执行该计算机程序使得电子设备实施上述的各种实施方式提供的方法。

最后应说明的是:以上各实施例仅用以说明本公开的技术方案,而非对其限制;尽管参照前述各实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本公开各实施例技术方案的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1