本发明涉及自动程序设计,尤其涉及一种页面跳转处理方法和装置。
背景技术:
1、目前单页应用(single page web application,简称spa)已经拥有了成熟的路由管理器(如vue-router),其利用浏览器的特性,通过url(uniform resource locator,统一资源定位符)来实现页面的跳转操作。
2、在移动端场景,特别是混合应用(hybrid)项目中,无法做到类似浏览器存在多个标签页,所有页面都是在同一个webview容器中渲染的,而目前路由管理器都是单例的,因而难以像原生一样,做到在页面前进时缓存上一个页面状态,在页面后退时销毁当前页面状态,也难以做到在同一个页面组件跳转并缓存页面状态,影响了页面跳转的便利。
技术实现思路
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、根据本发明所述提供的方案,上述发明中的一个实施例具有如下优点或有益效果:通过修改vue-router跳转页面的方法,在页面前进时生成字符串标记并存储至url中,以标记页面前进,并根据使用的跳转方式将其缓存实例存储到数组中的相应位置,后续在页面后退时即可从url中提取该字符串标记,以从数组中根据该字符串标记获取页面缓存实例来渲染。整个方案利用数据结构中栈的特性,把页面的前进比作入栈,把页面的后退比作出栈,以此实现页面像原生程序一样跳转的目的。
39、上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
1.一种页面跳转处理方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述根据统一资源定位符跳转至目标页面,生成目标页面的缓存实例,包括:
3.根据权利要求1或2所述的方法,其特征在于,所述将字符串标记和缓存实例按照入栈顺序存储到数组中,包括:
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
6.一种页面跳转处理装置,其特征在于,包括:
7.根据权利要求6所述装置,其特征在于,所述处理模块,用于:
8.根据权利要求6或7所述装置,其特征在于,所述处理模块,用于:
9.根据权利要求6所述装置,其特征在于,所述装置还包括管理模块,用于:
10.一种电子设备,其特征在于,包括:
11.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-5中任一所述的方法。
12.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-5中任一项所述的方法。