一种页面数据保存方法、装置、设备和存储介质与流程
本技术涉及页面数据保存,具体涉及一种页面数据保存方法、装置、设备和存储介质。
背景技术:
1、在网页应用中,用户数据的可靠保存是核心用户体验指标之一。用户可能在复杂表单上花费大量时间进行编辑,任何因页面意外关闭、浏览器崩溃、网络波动导致的数据丢失都会造成严重的用户损失和负面体验,传统的数据保存方式依赖用户在编辑过程中主动点击保存按钮,将数据同步发送至服务端,然而,实际使用中存在大量用户忘记手动保存、误触关闭标签页、浏览器意外崩溃等场景,导致已填写但未保存的数据永久丢失。
2、针对上述问题,延伸出了一种自动保存方案,即在用户编辑过程中定时将表单数据自动发送至服务端,但是这种定时机制非常死板,不能够根据页面的实时变化状态实现动态的数据保存和发送,容易导致数据丢失。
技术实现思路
1、有鉴于此,本技术提供了一种页面数据保存方法、装置、设备和存储介质,用于解决现有的定时机制非常死板,不能够根据页面的实时变化状态实现动态的数据保存和发送,容易导致数据丢失的问题。
2、为实现以上目的,现提出的方案如下:
3、第一方面,一种页面数据保存方法,包括:
4、根据预先建立的页面生命周期监听机制,实时监听页面的状态变化;
5、基于所述页面的状态变化实时构建保存任务,并保存至浏览器结构化存储的任务队列中;
6、将所述任务队列中的保存任务发送至服务端,并确定发送结果;
7、若所述发送结果为发送失败,则重新发送,返回执行所述确定发送结果的步骤,直到重新发送的次数达到预设上限,标记发送失败标签并保存在存储中;
8、当识别到所述页面进行初始化时,从所述存储中加载标记为发送失败标签的保存任务并重新发送。
9、优选地,所述根据预先建立的页面生命周期监听机制,实时监听页面的状态变化,包括:
10、所述页面生命周期监听机制中包括页面可见性变化事件监听器、冻结事件监听器和页面隐藏事件监听器;
11、所述页面可见性变化事件监听器用于实时监听页面的可见性变化事件;
12、所述冻结事件监听器用于实时监听页面所在浏览器冻结的冻结事件;
13、所述页面隐藏事件监听器用于实时监听页面存在被卸载倾向事件或被缓存倾向事件;
14、当监听到可见性变化事件、冻结事件、被卸载倾向事件或被缓存倾向事件中的任意一个或多个事件触发时,确定状态变化。
15、优选地,所述基于所述页面的状态变化实时构建保存任务,包括:
16、当所述页面从可见活跃状态转变为可见非活跃状态时,将转换前累积的数据变化构建为保存任务;
17、当所述页面从可见状态转变为隐藏状态时,将当前数据与上一次构建保存任务时的数据进行差异提取,以将差异提取的数据构建为保存任务;
18、当所述页面从可见状态或隐藏状态转变为冻结状态时,将所述存储中提取未被标记持久化标签的任务,以构建保存任务;
19、当所述页面从冻结状态转变为可见状态时,将所述存储中被标记有发送失败标签的任务作为保存任务。
20、优选地,将所述任务队列中的保存任务发送至服务端,包括:
21、若所述保存任务在被构建时对应的状态变化为从可见活跃状态转变为可见非活跃状态,则调用延迟发送接口发送至服务端;
22、若所述保存任务在被构建时对应的状态变化为从可见状态转变为隐藏状态,或,从冻结状态转变为可见状态,则调用保活发送接口发送至服务端;
23、若所述保存任务在被构建时对应的状态变化为从可见状态或隐藏状态转变为冻结状态,则调用异步信标接口发送至服务端。
24、优选地,还包括:
25、实时监测所述延迟发送接口、保活发送接口的状态;
26、若所述延迟发送接口为可用状态,则将所述保存任务作为请求体,并设置激活延迟时间,当所述页面关闭时或所述激活延迟时间到达时调用所述延迟发送接口;
27、若所述延迟发送接口为不可用状态,则转换为所述异步信标接口,以调用所述异步信标接口;
28、若所述异步信标接口与所述保存任务对接失败,则转换为所述保活发送接口,以调用所述保活发送接口。
29、优选地,所述确定发送结果,包括:
30、针对所述保存任务的发送建立发送请求;
31、确定将所述保存任务发送至所述服务端时所调用的接口;
32、若所调用的接口为延迟发送接口,则周期性检查所述发送请求的激活状态标识,若检测到所述激活状态为已激活状态,则判定发送成功;若在预设超时时间内未检测到已激活状态,则判定发送失败;
33、若所调用的接口为异步信标接口,则获取所述异步信标接口的返回标识确定发送结果;
34、若所调用的接口为保活发送接口,则等待所述服务端返回的响应,根据所述响应确定发送结果。
35、第二方面,一种页面数据保存装置,包括:
36、状态变化监听模块,用于根据预先建立的页面生命周期监听机制,实时监听页面的状态变化;
37、保存任务构建模块,用于基于所述页面的状态变化实时构建保存任务,并保存至浏览器结构化存储的任务队列中;
38、任务发送模块,用于将所述任务队列中的保存任务发送至服务端,并确定发送结果;
39、判断模块,用于若所述发送结果为发送失败,则重新发送,返回执行所述确定发送结果的步骤,直到重新发送的次数达到预设上限,标记发送失败标签并保存在存储中;
40、重新发送模块,用于当识别到所述页面进行初始化时,从所述存储中加载标记为发送失败标签的保存任务并重新发送。
41、优选地,所述任务发送模块包括:
42、发送请求建立模块,用于针对所述保存任务的发送建立发送请求;
43、调用接口确定模块,用于确定将所述保存任务发送至所述服务端时所调用的接口;
44、发送结果第一判断模块,用于若所调用的接口为延迟发送接口,则周期性检查所述发送请求的激活状态标识,若检测到所述激活状态为已激活状态,则判定发送成功;若在预设超时时间内未检测到已激活状态,则判定发送失败;
45、发送结果第二判断模块,用于若所调用的接口为异步信标接口,则获取所述异步信标接口的返回标识确定发送结果;
46、发送结果第三判断模块,用于若所调用的接口为保活发送接口,则等待所述服务端返回的响应,根据所述响应确定发送结果。
47、第三方面,一种页面数据保存设备,包括存储器和处理器;
48、所述存储器,用于存储程序;
49、所述处理器,用于执行所述程序,实现如第一方面任一项所述的页面数据保存方法的各个步骤。
50、第四方面,一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现如第一方面任一项所述的页面数据保存方法的各个步骤。
51、从上述技术方案可以看出,本技术根据预先建立的页面生命周期监听机制,实时监听页面的状态变化;基于所述页面的状态变化实时构建保存任务,并保存至浏览器结构化存储的任务队列中;将所述任务队列中的保存任务发送至服务端,并确定发送结果;若所述发送结果为发送失败,则重新发送,返回执行所述确定发送结果的步骤,直到重新发送的次数达到预设上限,标记发送失败标签并保存在存储中;当识别到所述页面进行初始化时,从所述存储中加载标记为发送失败标签的保存任务并重新发送。本技术首先通过实时监听,将捕捉时机从刻板的定时转变为动态的事件流,从而获取了最及时的状态变更信息,并以此构建存储于本地的持久化任务,实现第一层的数据存储,然后再发送给服务端,确定发送结果,发送结果意味着每一个保存任务都会有一个明确的最终状态,成功或失败都是可以追溯的,若发送失败,则重新发送,在达到预设上限后打上发送失败的标签,保存在存储中,重试可以争取在网络波动这样的临时问题下尽快将保存任务送到服务端,那么在后面的页面初始化时,就可以从存储中加载被标记为发送失败标签的保存任务,然后重新发送,从而使得前面积压保存的发送失败任务不会因为用户关闭页面、重启浏览器等而被遗忘,而是在等待下一个初始化时被自动唤醒、再次尝试同步,保证数据不被丢失。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com