一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

页面资源加载方法、系统、装置、计算机设备及存储介质与流程

2022-03-26 12:38:37 来源:中国专利 TAG:


1.本技术涉及人工智能技术领域,特别是涉及一种页面资源加载方法、系统、装置、计算机设备及存储介质。


背景技术:

2.随着行业及技术的发展,企业为了追求开发成本、产品质量、用户体验和开发效率,前端h5 app和客户端的本地app混合开发模式是必然的趋势。但是,混合开发模式中加载在线h5页面资源耗时较长。
3.传统技术中,可以基于第三方平台中小程序的开发框架,加载离线的h5页面资源,以改善用户体验。但是,采用第三方平台中小程序的开发框架加载h5页面资源的方式,存在加载页面资源成本较高的问题。


技术实现要素:

4.基于此,有必要针对上述技术问题,提供一种页面资源加载方法、系统、装置、计算机设备及存储介质。
5.第一方面,一种页面资源加载方法,所述方法包括:
6.检测到app启动时,获取资源更新文件;
7.根据所述资源更新文件,确定本地h5页面资源包是否为最新版本;
8.若否,则从服务端获取最新的h5页面资源包;
9.根据所述最新的h5页面资源包的第一md5值,对所述最新的h5页面资源包进行验证,在验证通过后加载所述最新的h5页面资源包中的h5页面资源文件。
10.在其中一个实施例中,所述根据所述资源更新文件,确定本地h5页面资源包是否为最新版本,包括:
11.获取所述资源更新文件中的h5页面资源包的第一版本号和所述本地h5页面资源包的第二版本号;
12.若所述第一版本号大于所述第二版本号,则确定所述本地h5页面资源包不是最新版本。
13.在其中一个实施例中,所述从服务端获取最新的h5页面资源包,包括:
14.通过所述资源更新文件中的下载路径,从所述服务端下载所述最新的h5页面资源包。
15.在其中一个实施例中,所述根据所述最新的h5页面资源包的第一md5值,对所述最新的h5页面资源包进行验证,包括:
16.获取资源更新文件;所述资源更新文件中包括所述服务端为所述最新的h5页面资源包配置的第二md5;
17.判断所述第一md5值与所述第二md5值是否相等,获取判断结果;
18.根据所述判断结果和所述最新的h5页面资源包中h5页面资源文件的第三md5值,
对所述最新的h5页面资源包进行验证。
19.在其中一个实施例中,所述根据所述判断结果和所述最新的h5页面资源包中h5页面资源文件的第三md5值,对所述最新的h5页面资源包进行验证,包括:
20.若所述第一md5值与所述第二md5值相等,则获取md5文件;所述md5文件中包括所述服务端为各所述h5页面资源文件配置的第四md5值;
21.根据所述第三md5值和所述第四md5值,对所述最新的h5页面资源包进行验证。
22.在其中一个实施例中,所述根据所述第三md5值和所述第四md5值,对所述最新的h5页面资源包进行验证,包括:
23.若所述第三md5值与所述第四md5值相等,则确定所述最新的h5页面资源包验证通过;
24.若所述第三md5值与所述第四md5值不相等,则确定所述最新的h5页面资源包验证未通过。
25.在其中一个实施例中,所述在验证通过后加载所述最新的h5页面资源包中的h5页面资源文件,包括:
26.在验证通过后将所述最新的h5页面资源包解压到指定路径;
27.根据查找到的指定路径加载所述最新的h5页面资源包中的h5页面资源文件。
28.在其中一个实施例中,所述方法还包括:
29.获取入口文件地址;
30.根据所述入口文件地址,从所述最新的h5页面资源包的entry表中查找h5页面的在线地址和所述h5页面资源文件的根路径;
31.根据所述根路径从所述在线地址中截取相对路径;
32.通过所述相对路径查找对应的所述指定路径。
33.第二方面,一种页面资源加载方法,所述方法包括:
34.将h5页面资源文件压缩后得到最新的h5页面资源包;
35.根据所述最新的h5页面资源包的第一md5值配置资源更新文件;所述资源更新文件用于确定客户端获取到的最新的h5页面资源包是否为最新版本;
36.根据所述h5页面资源文件的第四md5值配置md5文件;所述md5文件用于所述客户端对获取到的所述最新的h5页面资源包进行验证。
37.第三方面,一种页面资源加载系统,所述系统包括:客户端和服务端;
38.所述客户端用于执行上述第一方面中任一实施例的步骤;
39.所述服务端用于执行上述第二方面中任一实施例的步骤。
40.第四方面,一种页面资源加载装置,所述装置包括:
41.更新文件获取模块,用于检测到app启动时,获取资源更新文件;
42.版本确定模块,用于根据所述资源更新文件,确定本地h5页面资源包是否为最新版本;
43.资源包获取模块,用于在版本确定模块确定本地h5页面资源包不是最新版本时,从服务端获取最新的h5页面资源包;
44.验证模块,用于根据所述最新的h5页面资源包的第一md5值,对所述最新的h5页面资源包进行验证,在验证通过后加载所述最新的h5页面资源包中的h5页面资源文件。
45.第五方面,一种页面资源加载装置,所述装置包括:
46.资源包获取模块,用于将h5页面资源文件压缩后得到最新的h5页面资源包;
47.更新文件配置模块,用于根据所述最新的h5页面资源包的第一md5值配置资源更新文件;所述资源更新文件用于确定客户端获取到的最新的h5页面资源包是否为最新版本;
48.md5文件配置模块,用于根据所述h5页面资源文件的第四md5值配置md5文件;所述md5文件用于所述客户端对获取到的所述最新的h5页面资源包进行验证。
49.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
50.检测到app启动时,获取资源更新文件;
51.根据所述资源更新文件,确定本地h5页面资源包是否为最新版本;
52.若否,则从服务端获取最新的h5页面资源包;
53.根据所述最新的h5页面资源包的第一md5值,对所述最新的h5页面资源包进行验证,在验证通过后加载所述最新的h5页面资源包中的h5页面资源文件。
54.一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
55.检测到app启动时,获取资源更新文件;
56.根据所述资源更新文件,确定本地h5页面资源包是否为最新版本;
57.若否,则从服务端获取最新的h5页面资源包;
58.根据所述最新的h5页面资源包的第一md5值,对所述最新的h5页面资源包进行验证,在验证通过后加载所述最新的h5页面资源包中的h5页面资源文件。
59.上述页面资源加载方法、系统、装置、计算机设备和存储介质,客户端可以检测到app启动时,获取资源更新文件,根据资源更新文件,确定本地h5页面资源包是否为最新版本,若否,则从服务端获取最新的h5页面资源包,根据最新的h5页面资源包的第一md5值,对最新的h5页面资源包进行验证,在验证通过后加载最新的h5页面资源包中的h5页面资源文件;该方法可以加载离线h5页面资源文件生成h5页面以实现app开发,避免了通过网络加载h5页面资源文件时由于网络不稳定导致加载时间长影响用户体验的问题,提高了app开发的效率。
附图说明
60.图1为第一实施例中页面资源加载方法的应用环境图;
61.图2为第二实施例中页面资源加载方法的流程示意图;
62.图3为第三实施例中确定本地h5页面资源包是否为最新版本的方法流程示意图;
63.图4为第四实施例中对最新的h5页面资源包进行验证的方法流程示意图;
64.图5为第五实施例中对最新的h5页面资源包进行验证的方法流程示意图;
65.图6为第六实施例中对最新的h5页面资源包进行验证的方法流程示意图;
66.图7为第七实施例中在验证通过后加载最新的h5页面资源包中的h5页面资源文件的方法流程示意图;
67.图8为第八实施例中查找指定路径的方法流程示意图;
68.图9为第九实施例中页面资源加载方法的流程示意图;
69.图10为与第二实施例中的方法对应的页面资源加载装置的结构框图;
70.图11为与第九实施例中的方法对应的页面资源加载装置的结构框图;
71.图12为第一实施例至第九实施例中计算机设备的内部结构图。
具体实施方式
72.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
73.本技术提供的页面资源加载方法,可以应用于如图1所示的应用环境中,即页面资源加载系统。可选的,上述页面资源加载系统的架构如图1所示,页面资源加载系统中的服务端、客户端可以用独立的服务器或者是多个服务器组成的服务器集群来实现,还可以为但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,上述客户端的应用系统可以为ios、安卓、塞班平台或微软平台等系统,对此不做限定。其中,服务端和客户端之间可以进行通信连接,该通信方式可以为wi-fi,移动网络或蓝牙连接等等。在本实施例中,可以通过页面资源加载系统可以离线加载已存储的h5页面资源文件生成h5页面,不需要通过网络下载h5页面资源文件。
74.在一个实施例中,如图2所示,提供了一种页面资源加载方法,以该方法应用于图1中的客户端为例进行说明,包括以下步骤:
75.s100、检测到app启动时,获取资源更新文件。
76.具体的,上述app可以为实现多种不同功能的应用程序,如绘图app、聊天app、网购app、银行app等等;上述app可以安装于客户端上。客户端可以接收app启动请求,并响应app启动请求以启动app,或者,在预设时间点启动app,或者,某一时间点启动app,间隔一段时间后会自动关闭app,然后再间隔一段时间会重复启动app,或者根据用户实际需求在任意时间点启动app,本实施例对app的启动方式不做限定。客户端可以根据当前时间确定app是否已启动,或者根据当前运行的实时线程确定app是否已启动,当然,还可以根据功能请求的响应确定app是否已启动,本实施例对检测app是否启动的方法不做限定。
77.可以理解的是,客户端检测到app启动时,可以创建一些功能函数,并且在功能函数的生命周期内向服务端发送资源更新文件获取请求,服务端接收到资源更新文件获取请求后,响应资源更新文件获取请求,从文件库中查找到资源更新文件,并将资源更新文件发送至客户端,使客户端获取到资源更新文件。上述功能函数可以为生命周期函数、毁灭函数、暂停函数等等,但在本实施例中,上述功能函数为生命周期函数,可以通过application oncreate表示。文件库中可以包括资源更新文件,还可以包括其它文件,这些文件携带有对应的标识符,以便于进行区分资源更新文件和其它文件。
78.还可以理解的是,上述资源更新文件中的脚本格式可以为json、javascript、css、java、sql等格式,但在本实施例中,资源更新文件的格式可以为json格式的文件。资源更新文件可以为服务端预先存储的文件,资源更新文件中可以存储最新的h5页面资源包的属性信息和其它相关信息,如最新的h5页面资源包的大小、存储时间、存储路径、压缩格式、压缩方法等信息。最新的h5页面资源包中的脚本格式与资源更新文件中的脚本格式可以相同。
79.s200、根据资源更新文件,确定本地h5页面资源包是否为最新版本。
80.具体的,客户端可以判断资源更新文件中最新的h5页面资源包中的各h5页面资源文件,与本地h5页面资源包中的各本地h5页面资源文件是否相同,得到判断结果,并根据判断结果确定本地h5页面资源包是否为最新版本。其中,若确定最新的h5页面资源包中的各h5页面资源文件与本地h5页面资源包中的各本地h5页面资源文件相同,则可以确定本地h5页面资源包为最新版本,否则,确定本地h5页面资源包不为最新版本。
81.同时,客户端还可以获取资源更新文件中最新的h5页面资源包的命名信息,判断最新的h5页面资源包的命名信息与本地h5页面资源包的命名信息是否相等,得到判断结果,并根据判断结果确定本地h5页面资源包是否为最新版本。其中,若最新的h5页面资源包的命名信息与本地h5页面资源包的命名信息相等,则可以确定本地h5页面资源包为最新版本,否则,确定本地h5页面资源包不为最新版本。上述命名信息可以包括h5页面资源包的版本级别号、压缩格式、包含h5页面资源文件的格式等等信息。本地h5页面资源包可以为客户端获取到的本地h5页面资源文件压缩后的对应资源包,该本地h5页面资源包的格式可以为rar、zip、dar、car等等,但在本实施例中本地h5页面资源包的压缩格式与最新的h5页面资源包的压缩格式可以相等。
82.s300、若否,则从服务端获取最新的h5页面资源包。
83.具体的,若客户端确定本地h5页面资源包不为最新版本,则可以向服务端发送资源包获取请求,服务端接收到资源包获取请求后,并将最新的h5页面资源包发送至客户端。客户端获取到最新的h5页面资源包后,可以删除本地h5页面资源包,使得客户端当前获取到的h5页面资源包为最新的h5页面资源包。
84.可以理解的是,最新的h5页面资源包可以为h5页面资源编译完成后生成h5页面资源文件,然后对h5页面资源文件进行压缩得到的h5页面资源包,上述最新的h5页面资源包的压缩格式可以为rar、zip、dar、car等等,但在本实施例中最新的h5页面资源包的格式可以为zip格式。其中,服务端可以采用md5信息摘要算法计算得到最新的h5页面资源包的md5值,具体可以通过json、javascript、css、java或者sql编写md5信息摘要算法对应的脚本,生成node.js脚本文件,以计算最新的h5页面资源包的md5值,但在本实施例中,由于最新的h5页面资源包中包含的h5页面资源文件为json格式,因此,服务端可以通过json编写md5信息摘要算法对应的脚本来计算最新的h5页面资源包的md5值,也就是,脚本格式与h5页面资源文件的格式可以对应。
85.同时,若客户端确定本地h5页面资源包为最新版本,则可以将当前获取到的h5页面资源包确定为最新的h5页面资源包,该情况下,可以不执行s400的步骤,直接将最新的h5页面资源包解压得到h5页面资源文件,从而通过解压后的h5页面资源文件加载和渲染h5页面。
86.s400、根据最新的h5页面资源包的第一md5值,对最新的h5页面资源包进行验证,在验证通过后加载最新的h5页面资源包中的h5页面资源文件。
87.具体的,在上述s300步骤的基础上,客户端为了验证在获取最新的h5页面资源包的过程中,最新的h5页面资源包中的信息是否被篡改,也就是验证获取到的最新的h5页面资源包的合法性,可以采用md5信息摘要算法计算获取到的最新的h5页面资源包的md5值,即第一md5值。md5信息摘要算法的编写脚本格式与客户端获取到的最新的h5页面资源包中
的脚本格式可以相同。
88.可以理解的是,若客户端获取到的最新的h5页面资源包中的脚本格式为json格式,则客户端可以通过json编写md5信息摘要算法对应的脚本来计算最新的h5页面资源包的第一md5值。
89.还可以理解的是,服务端计算的最新的h5页面资源包的md5值与客户端计算的最新的h5页面资源包的第一md5值可以相等,也可以不相等;若客户端在获取最新的h5页面资源包的过程中,最新的h5页面资源包中的信息被篡改时,服务端计算的最新的h5页面资源包的md5值与客户端计算的最新的h5页面资源包的第一md5值不相等,若客户端在获取最新的h5页面资源包的过程中,最新的h5页面资源包中的信息未被篡改时,服务端计算的最新的h5页面资源包的md5值与客户端计算的最新的h5页面资源包的第一md5值相等。
90.在本实施例中,资源更新文件中可以包括最新的h5页面资源包的第一md5值、下载路径和版本号。上述最新的h5页面资源包的下载路径可以理解为最新的h5页面资源包的存储路径;上述最新的h5页面资源包的版本号可以为最新的h5页面资源包的名称、创建时间、存储顺序等属性信息,存储顺序可以理解为当资源更新文件中存储多个最新的h5页面资源包时,每个最新的h5页面资源包的存储的排列顺序。但是,在本实施例中,资源更新文件中仅存储最新的h5页面资源包,存储顺序可以理解为最新的h5页面资源包的编号。
91.上述页面资源加载方法中,客户端可以检测到app启动时,获取资源更新文件,根据资源更新文件,确定本地h5页面资源包是否为最新版本,若否,则从服务端获取最新的h5页面资源包,根据最新的h5页面资源包的第一md5值,对最新的h5页面资源包进行验证,在验证通过后加载最新的h5页面资源包中的h5页面资源文件;该方法可以加载离线h5页面资源文件生成h5页面以实现app开发,避免了通过网络加载h5页面资源文件时由于网络不稳定导致加载时间长影响用户体验的问题,提高了app开发的效率;同时,该方法可以直接加载预先下载且解压后的离线h5页面资源文件,避免了在第三方平台开发框架基础上才能加载离线h5页面资源文件的问题,从而降低了加载离线h5页面资源时购买第三方平台的成本;另外,该方法在加载目标离线h5页面资源文件时,并不需要使用第三方平台开发框架,可以避免出现第三方平台开发框架与h5语法不兼容且需要对h5页面资源文件进行移植改造的问题,从而降低了h5页面资源文件的移植成本,进一步降低了加载h5页面资源的成本;还有,该方法在加载离线h5页面资源文件时,没有使用第三方平台开发框架,可以避免客户端集成第三方平台对应的开发工具,从而降低了客户端的集成成本,进一步降低了加载h5页面资源的成本。
92.作为其中一个实施例,如图3所示,上述s200中根据资源更新文件,确定本地h5页面资源包是否为最新版本的步骤,可以通过以下步骤实现:
93.s210、获取资源更新文件中的h5页面资源包的第一版本号和本地h5页面资源包的第二版本号。
94.具体的,客户端可以解析资源更新文件中的h5页面资源包,从中提取h5页面资源包的版本号,即第一版本号。h5页面资源包的版本号与h5页面资源包的其它信息的表达形式可以不相同,如,h5页面资源包的版本号用数字表示,则h5页面资源包的其它信息可以用字母表示,h5页面资源包的版本号用字母表示,则h5页面资源包的其它信息可以用数字表示,h5页面资源包的版本号用大写字母表示,则h5页面资源包的其它信息可以用小写字母
表示,只要h5页面资源包的版本号与h5页面资源包的其它信息的表达形式不同即可,以便能够快速区分h5页面资源包的版本号和h5页面资源包的其它信息。
95.可以理解的是,客户端可以实时获取本地h5页面资源包的第二版本号,第二版本号与第一版本号的表达形式可以一致,但是,第二版本号与第一版本号可以相同,也可以不相同,对此不做限定。
96.s220、判断第一版本号是否大于第二版本号。
97.具体的,客户端可以将第一版本号和第二版本号转换为统一进制的数值,然后判断第一版本号转换的数值是否大于第二版本号转换的数值。统一进制的数值可以为二进制数值、八进制数值、十进制数值等等。
98.s230、若第一版本号大于第二版本号,则确定本地h5页面资源包不是最新版本。
99.具体的,客户端可以将资源更新文件中的h5页面资源包的第一版本号与本地h5页面资源包的第二版本号进行比较,若确定第一版本号大于第二版本号,则确定本地h5页面资源包不是最新版本,否则,可以确定本地h5页面资源包是最新版本。其中,若第一版本号和第二版本号均为数字,则可以将第一版本号和第二版本号转换为十进制数后,再比较两者的大小,第一版本号对应的十进制数大于第二版本号对应的十进制数时,确定第一版本号大于第二版本号。
100.可以理解的是,若第一版本号和第二版本号均为字母,则可以将第一版本号和第二版本号转换为十进制数后,再比较两者的大小,第一版本号对应的十进制数大于第二版本号对应的十进制数时,确定第一版本号大于第二版本号;若第一版本号和第二版本号均为数字和字母的混合表达形式,则可以将第一版本号和第二版本号转换为十进制数后,再比较两者的大小,第一版本号对应的十进制数大于第二版本号对应的十进制数时,确定第一版本号大于第二版本号;若第一版本号和第二版本号均为数字和/或字母的表达形式,且第一版本号和第二版本号的长度相同,则可以将对应对应的字符进行一一比较,较大字符对应的总数量较大的确定为对应版本号较大,否则确定对应版本号较小;本实施例不限于这些确定第一版本号大于第二版本号的方式,还可以为其它方式。
101.另外,客户端还可以判断第一版本号是否小于或等于第二版本号,若确定第一版本号小于或等于第二版本号时,可以确定本地h5页面资源包是最新版本。具体判断方式和上述s220中判断第一版本号是否大于第二版本号的方式类似,对此不再赘述。
102.其中,上述s300中从服务端获取最新的h5页面资源包的步骤,可以包括:通过资源更新文件中的下载路径,从服务端下载最新的h5页面资源包。
103.还可以理解的是,若客户端确定本地h5页面资源包不是最新版本,此时,需要将客户端当前的本地h5页面资源包进行更新,得到最新的h5页面资源包。在更新过程,客户端可以获取资源更新文件,并从资源更新文件中获取最新的h5页面资源包的下载路径,之后向服务端发送携带下载路径的资源包获取请求,服务端响应资源包获取请求后,将从下载路径下载的最新的h5页面资源包发送至客户端;或者,客户端可以获取资源更新文件,并从资源更新文件中获取最新的h5页面资源包的下载路径,然后直接将下载路径发送至服务端,服务端自动根据下载路径直接下载对应的资源包,即资源更新文件中最新的h5页面资源包。其中,下载路径可以包括多个字符,且有一个或多个特殊字符,以区别于其它路径。
104.本实施例可以从服务端下载最新的h5页面资源包,进一步将最新的h5页面资源包
解压至指定路径,以使客户端能够从本地加载预先下载且解压后的离散h5页面资源文件生成h5页面,避免了通过网络加载h5页面资源文件时由于网络不稳定导致加载时间长影响用户体验的问题,从而提高了h5页面资源文件加载的效率。
105.上述页面资源加载方法可以获取资源更新文件中的h5页面资源包的第一版本号和本地h5页面资源包的第二版本号,若第一版本号大于第二版本号,则确定本地h5页面资源包不是最新版本,进一步更新当前的本地h5页面资源包为最新的h5页面资源包,并将最新的h5页面资源包解压至指定路径,以使客户端能够从本地加载预先下载且解压后的离散h5页面资源文件,生成h5页面以实现app开发,避免了通过网络加载h5页面资源文件时由于网络不稳定导致加载时间长影响用户体验的问题,提高了app开发的效率。
106.作为其中一个实施例,如图4所示,上述s400中根据最新的h5页面资源包的第一md5值,对最新的h5页面资源包进行验证的步骤,可以通过以下步骤实现:
107.s410、获取资源更新文件;资源更新文件中包括服务端为最新的h5页面资源包配置的第二md5值。
108.具体的,上述s410的具体过程与上述s100中的具体过程可以相同。在本实施例中,资源更新文件中可以包括服务端为最新的h5页面资源包配置的md5值,即第二md5值,也就是,服务端计算的最新的h5页面资源包的第二md5值。其中,服务端可以采用md5信息摘要算法计算得到最新的h5页面资源包的第二md5值,具体可以通过json、javascript、css、java或者sql编写md5信息摘要算法对应的脚本,生成node.js脚本文件,以计算最新的h5页面资源包的第二md5值,但在本实施例中,由于最新的h5页面资源包中包含的h5页面资源文件为json格式,因此,服务端可以通过json编写md5信息摘要算法对应的脚本来计算最新的h5页面资源包的第二md5值,也就是,脚本格式与h5页面资源文件的格式可以对应。
109.s420、判断第一md5值与第二md5值是否相等,获取判断结果。
110.具体的,客户端可以将计算的最新的h5页面资源包的第一md5值与服务端为最新的h5页面资源包配置的第二md5值进行比较,判断第一md5值与第二md5值是否相等,得到判断结果。判断结果可以包括第一md5值与第二md5值相等和第一md5值与第二md5值不相等。md5值可以通过二进制数值或者十进制数值表示,还可以通过其它字符表示,且可以将其转换为十进制数据,进一步比较第一md5值与第二md5值是否相等。
111.s430、根据判断结果和最新的h5页面资源包中h5页面资源文件的第三md5值,对最新的h5页面资源包进行验证。
112.具体的,最新的h5页面资源包可以包括多个h5页面资源文件,客户端获取到最新的h5页面资源包后,可以计算最新的h5页面资源包中各h5页面资源文件的md5值,即第三md5值。计算h5页面资源文件的md5值的方法,与计算最新的h5页面资源包的md5值的方法可以相同,对此本实施例不再赘述。
113.可以理解的是,客户端计算得到第三md5值后,可以根据判断结果和第三md5值,对从服务端获取到的最新的h5页面资源包进行验证,以确定在获取最新的h5页面资源包的过程中,最新的h5页面资源包中的h5页面资源文件是否被篡改,保证获取到的最新的h5页面资源包中的h5页面资源文件的合法性,以便正常更新客户端当前的本地h5页面资源包。
114.上述页面资源加载方法可以获取资源更新文件,判断第一md5值与第二md5值是否相等,获取判断结果,根据判断结果和最新的h5页面资源包中h5页面资源文件的第三md5
值,对最新的h5页面资源包进行验证,进一步根据验证结果加载最新的h5页面资源包中的h5页面资源文件;该方法可以在保证获取到的最新的h5页面资源包中的h5页面资源文件合法,没有被篡改的情况下,加载最新的h5页面资源包中的h5页面资源文件生成h5页面,避免生成非目标h5页面,从而提高了生成目标h5页面的准确性。
115.作为其中一个实施例,在图4的基础上,如图5所示,上述s430中根据判断结果和最新的h5页面资源包中h5页面资源文件的第三md5值,对最新的h5页面资源包进行验证的步骤,可以通过以下步骤实现:
116.s431、若第一md5值与第二md5值相等,则获取md5文件;md5文件中包括服务端为各h5页面资源文件配置的第四md5值。
117.具体的,若客户端确定计算的最新的h5页面资源包的第一md5值与服务端为最新的h5页面资源包配置的第二md5值相等,则可以从服务端获取md5文件。md5文件中可以包括服务端为最新的h5页面资源包中的各h5页面资源文件配置的第四md5值。其中,服务端可以采用md5信息摘要算法计算得到最新的h5页面资源包中各h5页面资源文件的md5值,即第四md5值,具体可以通过json、javascript、css、java或者sql编写md5信息摘要算法对应的脚本,生成node.js脚本文件,以计算各h5页面资源文件的md5值,但在本实施例中,由于最新的h5页面资源包中包含的h5页面资源文件为json格式,因此,服务端可以通过json编写md5信息摘要算法对应的脚本来计算各h5页面资源文件的第四md5值,也就是,脚本格式与h5页面资源文件的格式可以对应。
118.s432、根据第三md5值和第四md5值,对最新的h5页面资源包进行验证。
119.具体的,为了验证在获取最新的h5页面资源包的过程中,最新的h5页面资源包中的h5页面资源文件是否被篡改,也就是验证获取到的最新的h5页面资源包中的h5页面资源的合法性,客户端可以将获取到的最新的h5页面资源包中h5页面资源文件的第三md5值与服务端为最新的h5页面资源包中的各h5页面资源文件配置的第四md5值进行比较,对最新的h5页面资源包中的h5页面资源文件进行验证,也就是,根据比较结果完成对最新的h5页面资源包进行验证。
120.上述页面资源加载方法可以在确定第一md5值与第二md5值相等时,获取md5文件,并根据第三md5值和第四md5值,对最新的h5页面资源包进行验证,进一步根据验证结果加载最新的h5页面资源包中的h5页面资源文件;该方法可以在保证获取到的最新的h5页面资源包中的h5页面资源文件合法,没有被篡改的情况下,加载最新的h5页面资源包中的h5页面资源文件生成h5页面,避免生成非目标h5页面,从而提高了生成目标h5页面的准确性。
121.作为其中一个实施例,在图5的基础上,如图6所示,上述s432中根据第三md5值和第四md5值,对最新的h5页面资源包进行验证的步骤,具体可以包括:
122.s432a、若第三md5值与第四md5值相等,则确定最新的h5页面资源包验证通过。
123.具体的,若客户端确定获取到的最新的h5页面资源包中h5页面资源文件的第三md5值与服务端为最新的h5页面资源包中的各h5页面资源文件配置的第四md5值相等,则表明从服务端获取到的最新的h5页面资源包没有被篡改,可以确定最新的h5页面资源包验证通过。
124.s432b、若第三md5值与第四md5值不相等,则确定最新的h5页面资源包验证未通过。
125.具体的,若客户端确定获取到的最新的h5页面资源包中h5页面资源文件的第三md5值与服务端为最新的h5页面资源包中的各h5页面资源文件配置的第四md5值不相等,则表明从服务端获取到的最新的h5页面资源包被篡改过,可以确定最新的h5页面资源包验证未通过。
126.上述页面资源加载方法可以确定最新的h5页面资源包是否验证通过,进一步根据验证结果加载最新的h5页面资源包中的h5页面资源文件;该方法可以在保证获取到的最新的h5页面资源包中的h5页面资源文件合法,没有被篡改的情况下,加载最新的h5页面资源包中的h5页面资源文件生成h5页面,避免生成非目标h5页面,从而提高了生成目标h5页面的准确性。
127.作为其中一个实施例,如图7所示,上述s400中在验证通过后加载最新的h5页面资源包中的h5页面资源文件的步骤,可以包括:
128.s440、在验证通过后将最新的h5页面资源包解压到指定路径。
129.具体的,客户端在确定最新的h5页面资源包验证通过后,可以将从服务端获取到的最新的h5页面资源包解压到指定路径。该指定路径可以为本地路径,也可以为客户端的云端路径,对此不做限定。
130.s450、根据查找到的指定路径加载最新的h5页面资源包中的h5页面资源文件。
131.具体的,客户端可以查找解压最新的h5页面资源包的指定路径,然后根据查找到的指定路径去加载最新的h5页面资源包中的h5页面资源文件。其中,查找指定路径的方法可以为根据指定路径标识符查找指定路径,还可以根据最新的h5页面资源包的标识符查找对应的指定路径,对此方法本实施例不做限定。
132.上述页面资源加载方法可以在最新的h5页面资源包验证通过后,加载预先获取的最新的离线h5页面资源包中的h5页面资源文件生成h5页面以实现app开发,避免了通过网络加载h5页面资源文件时由于网络不稳定导致加载时间长影响用户体验的问题,提高了app开发的效率;同时,该方法可以直接加载预先下载且解压后的离线h5页面资源文件,避免了在第三方平台开发框架基础上才能加载离线h5页面资源文件的问题,从而降低了加载离线h5页面资源时购买第三方平台的成本;另外,该方法在加载目标离线h5页面资源文件时,并不需要使用第三方平台开发框架,可以避免出现第三方平台开发框架与h5语法不兼容且需要对h5页面资源文件进行移植改造的问题,从而降低了h5页面资源文件的移植成本,进一步降低了加载h5页面资源的成本;还有,该方法在加载离线h5页面资源文件时,没有使用第三方平台开发框架,可以避免客户端集成第三方平台对应的开发工具,从而降低了客户端的集成成本,进一步降低了加载h5页面资源的成本。
133.作为其中一个实施例,如图8所示,在上述s450的步骤之前,上述方法还可以包括:
134.s451、获取入口文件地址。
135.具体的,客户端可以接收用户输入的h5页面的一个或者多个功能入口对应的入口文件地址。如,hao123页面的知乎入口、京东入口、百度入口、腾讯入口、淘宝入口等等,其它h5页面也类似,均有对应的功能入口。入口文件地址可以包括多个字符组成的字符串。
136.s452、根据入口文件地址,从最新的h5页面资源包的entry表中查找h5页面的在线地址和h5页面资源文件的根路径。
137.具体的,上述entry表可以为执行上述页面资源加载方法之前服务端配置的最新
的h5页面资源包的信息表,entry表可以包括h5页面的在线地址(即url地址)、入口文件地址(即离线uri地址)和本地离线h5页面资源文件的根路径。其中,url地址是uri地址的一种。其中,上述最新的h5页面资源包可以为h5页面资源编译完成后生成h5页面资源文件,然后对h5页面资源文件进行压缩得到的h5页面资源包。
138.s453、根据根路径从在线地址中截取相对路径。
139.具体的,客户端可以通过根路径,从在线地址中截取相对路径。可选的,在线地址可以包括根路径和相对路径,还可以包括其它路径,或者,仅包括根路径和相对路径。其中,在线地址包含的字符信息中一部分为根路径,另一部分可以为相对路径,在线地址中根路径和相对路径为对应位置上的字符信息。如,在线地址包括18个字符,前9个字符表示根路径,后9个字符可以表示相对路径,或者后9个字符表示根路径,前9个字符可以表示相对路径;若在线地址包括根路径、相对路径和其它路径,在线地址包括24个字符,则前9个字符表示根路径,接着中间8个字符表示相对路径,其余字符可以表示其它路径。
140.另外,根路径和相对路径的首尾字符均为特殊字符,还可以根据这些特殊字符从在线地址中提取相对路径。
141.s454、通过相对路径查找对应的指定路径。
142.具体的,客户端获取到相对路径后,可以根据相对路径从本地所有路径信息中查找对应的指定路径。相对路径可以为指定路径中的任意连续部分信息。
143.上述页面资源加载方法可以获取入口文件地址,根据入口文件地址,从最新的h5页面资源包的entry表中查找h5页面的在线地址和h5页面资源文件的根路径,根据根路径从在线地址中截取相对路径,通过相对路径查找对应的指定路径,进而根据指定路径加载预先下载且解压后的离线h5页面资源文件生成h5页面以实现app开发,避免了通过网络加载h5页面资源文件时由于网络不稳定导致加载时间长影响用户体验的问题,提高了app开发的效率。
144.在一个实施例中,如图9所示,提供了一种页面资源加载方法,以该方法应用于图1中的服务端为例进行说明,包括以下步骤:
145.s500、将h5页面资源文件压缩后得到最新的h5页面资源包。
146.具体的,服务端可以对h5页面资源进行编译,编译完成后生成h5页面资源文件,然后采用压缩算法对h5页面资源文件进行压缩得到最新的h5页面资源包。最新的h5页面资源包的压缩格式可以为rar、zip、dar、car等等,但在本实施例中最新的h5页面资源包的格式可以为zip格式。上述压缩算法可以为熵编码算法、信源编码,还可以为熵编码和信源编码的组合编码算法,对此本实施例不做限定。
147.s600、根据最新的h5页面资源包的第一md5值配置资源更新文件;资源更新文件用于确定客户端获取到的最新的h5页面资源包是否为最新版本。
148.具体的,服务端可以采用md5信息摘要算法计算获取到的最新的h5页面资源包的md5值,即第一md5值。md5信息摘要算法的编写脚本格式与客户端获取到的最新的h5页面资源包中的脚本格式可以相同。最新的h5页面资源包中的脚本格式为json格式,则服务端可以通过json编写md5信息摘要算法对应的脚本来计算最新的h5页面资源包的第一md5值。服务端可以将计算得到的最新的h5页面资源包的第一md5值存储至资源更新文件。同时,资源更新文件中可以存储最新的h5页面资源包的
149.可以理解的是,上述资源更新文件中的脚本格式可以为json、javascript、css、java、sql等格式,但在本实施例中,资源更新文件的格式可以为json格式的文件。资源更新文件中可以存储最新的h5页面资源包的属性信息和其它相关信息,如最新的h5页面资源包的大小、存储时间、存储路径、压缩格式、压缩方法等信息。最新的h5页面资源包中的脚本格式与资源更新文件中的脚本格式可以相同。
150.在本实施例中,资源更新文件中可以包括最新的h5页面资源包的第一md5值、下载路径和版本号。上述最新的h5页面资源包的下载路径可以理解为最新的h5页面资源包的存储路径;上述最新的h5页面资源包的版本号可以为最新的h5页面资源包的名称、创建时间、存储顺序等属性信息,存储顺序可以理解为当资源更新文件中存储多个最新的h5页面资源包时,每个最新的h5页面资源包的存储的排列顺序。但是,在本实施例中,资源更新文件中仅存储最新的h5页面资源包,存储顺序可以理解为最新的h5页面资源包的编号。
151.同时,资源更新文件可以用于确定客户端获取到的最新的h5页面资源包是否为最新版本,其中,客户端可以根据资源更新文件执行上述s100至上述s300中的步骤,具体过程不再赘述。
152.s700、根据h5页面资源文件的第四md5值配置md5文件;md5文件用于客户端对获取到的最新的h5页面资源包进行验证。
153.具体的,服务端可以采用md5信息摘要算法计算得到最新的h5页面资源包中各h5页面资源文件的md5值,即第四md5值,具体可以通过json、javascript、css、java或者sql编写md5信息摘要算法对应的脚本,生成node.js脚本文件,以计算各h5页面资源文件的md5值,但在本实施例中,由于最新的h5页面资源包中包含的h5页面资源文件为json格式,因此,服务端可以通过json编写md5信息摘要算法对应的脚本来计算各h5页面资源文件的第四md5值,也就是,脚本格式与h5页面资源文件的格式可以对应。同时,服务端可以将计算得到的第四md5值存储至md5文件。md5文件可以用于客户端对获取到的最新的h5页面资源包进行验证。其中,客户端可以根据md5文件执行上述s400中的步骤,具体过程不再赘述。
154.上述页面资源加载方法可以预先配置资源更新文件和md5文件,进一步根据资源更新文件和md5文件对获取到的最新的h5页面资源包进行验证,验证通过后,加载预先获取的最新的离线h5页面资源包中的h5页面资源文件生成h5页面以实现app开发,避免了通过网络加载h5页面资源文件时由于网络不稳定导致加载时间长影响用户体验的问题,提高了app开发的效率;同时,该方法可以直接加载预先下载且解压后的离线h5页面资源文件,避免了在第三方平台开发框架基础上才能加载离线h5页面资源文件的问题,从而降低了加载离线h5页面资源时购买第三方平台的成本;另外,该方法在加载目标离线h5页面资源文件时,并不需要使用第三方平台开发框架,可以避免出现第三方平台开发框架与h5语法不兼容且需要对h5页面资源文件进行移植改造的问题,从而降低了h5页面资源文件的移植成本,进一步降低了加载h5页面资源的成本;还有,该方法在加载离线h5页面资源文件时,没有使用第三方平台开发框架,可以避免客户端集成第三方平台对应的开发工具,从而降低了客户端的集成成本,进一步降低了加载h5页面资源的成本。
155.继续参见图1,另一实施例提供的一种页面资源加载系统的具体结构示意图;页面资源加载系统包括:客户端和服务端。
156.其中,客户端用于执行上述图2~图8对应的任一实施例中的方法;
157.服务端用于执行上述图9对应实施例中的方法。
158.具体的,客户端可以检测到app启动时,获取资源更新文件,根据资源更新文件,确定本地h5页面资源包是否为最新版本,若否,则从服务端获取最新的h5页面资源包,根据最新的h5页面资源包的第一md5值,对最新的h5页面资源包进行验证,在验证通过后加载最新的h5页面资源包中的h5页面资源文件。
159.同时,服务端可以将h5页面资源文件压缩后得到最新的h5页面资源包,根据最新的h5页面资源包的第一md5值配置资源更新文件,根据h5页面资源文件的第四md5值配置md5文件,资源更新文件用于确定客户端获取到的最新的h5页面资源包是否为最新版本,md5文件用于客户端对获取到的最新的h5页面资源包进行验证。
160.本实施例提供的页面资源加载系统,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
161.应该理解的是,虽然图2-9的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-9中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
162.在一个实施例中,如图10所示,提供了一种页面资源加载装置,包括:更新文件获取模块11、版本确定模块12、资源包获取模块13和验证模块14,其中:
163.更新文件获取模块11,用于检测到app启动时,获取资源更新文件;
164.版本确定模块12,用于根据资源更新文件,确定本地h5页面资源包是否为最新版本;
165.资源包获取模块13,用于在版本确定模块确定本地h5页面资源包不是最新版本时,从服务端获取最新的h5页面资源包;
166.验证模块14,用于根据最新的h5页面资源包的第一md5值,对最新的h5页面资源包进行验证,在验证通过后加载最新的h5页面资源包中的h5页面资源文件。
167.本实施例提供的页面资源加载装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
168.在其中一个实施例中,版本确定模块12包括:版本号获取单元和版本确定单元,其中:
169.版本号获取单元,用于获取资源更新文件中的h5页面资源包的第一版本号和本地h5页面资源包的第二版本号;
170.版本确定单元,用于第一版本号大于第二版本号时,确定本地h5页面资源包不是最新版本。
171.本实施例提供的页面资源加载装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
172.在其中一个实施例中,资源包获取模块13具体用于通过资源更新文件中的下载路径,从服务端下载最新的h5页面资源包。
173.本实施例提供的页面资源加载装置,可以执行上述方法实施例,其实现原理和技
术效果类似,在此不再赘述。
174.在其中一个实施例中,验证模块14包括:更新文件获取单元、判断单元和验证单元,其中:
175.更新文件获取单元,用于获取资源更新文件;资源更新文件中包括服务端为最新的h5页面资源包配置的第二md5;
176.判断单元,用于判断第一md5值与第二md5值是否相等,获取判断结果;
177.验证单元,用于根据判断结果和最新的h5页面资源包中h5页面资源文件的第三md5值,对最新的h5页面资源包进行验证
178.本实施例提供的页面资源加载装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
179.在其中一个实施例中,验证单元包括:md5文件获取子单元和验证子单元,其中:
180.md5文件获取子单元,用于第一md5值与第二md5值相等时,获取md5文件;md5文件中包括服务端为各h5页面资源文件配置的第四md5值;
181.验证子单元,用于根据第三md5值和第四md5值,对最新的h5页面资源包进行验证。
182.本实施例提供的页面资源加载装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
183.在其中一个实施例中,验证子单元包括:第一验证子单元和第二验证子单元,其中:
184.第一验证子单元,用于第三md5值与第四md5值相等时,确定最新的h5页面资源包验证通过;
185.第二验证子单元,用于第三md5值与第四md5值不相等时,确定最新的h5页面资源包验证未通过。
186.本实施例提供的页面资源加载装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
187.在其中一个实施例中,验证模块14还包括:资源包解压单元和资源文件加载单元,其中:
188.资源包解压单元,用于在验证通过后将最新的h5页面资源包解压到指定路径;
189.资源文件加载单元,用于根据查找到的指定路径加载最新的h5页面资源包中的h5页面资源文件。
190.本实施例提供的页面资源加载装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
191.在其中一个实施例中,验证模块14还包括:地址获取单元、根路径获取单元、相对路径获取单元和指定路径查找单元,其中:
192.地址获取单元,用于获取入口文件地址;
193.根路径获取单元,用于根据入口文件地址,从最新的h5页面资源包的entry表中查找h5页面的在线地址和h5页面资源文件的根路径;
194.相对路径获取单元,用于根据根路径从在线地址中截取相对路径;
195.指定路径查找单元,用于通过相对路径查找对应的指定路径。
196.本实施例提供的页面资源加载装置,可以执行上述方法实施例,其实现原理和技
术效果类似,在此不再赘述。
197.在一个实施例中,如图11所示,提供了一种页面资源加载装置,包括:资源包获取模块21、更新文件配置模块22和md5文件配置模块23,其中:
198.资源包获取模块21,用于将h5页面资源文件压缩后得到最新的h5页面资源包;
199.更新文件配置模块22,用于根据最新的h5页面资源包的第一md5值配置资源更新文件;资源更新文件用于确定客户端获取到的最新的h5页面资源包是否为最新版本;
200.md5文件配置模块23,用于根据h5页面资源文件的第四md5值配置md5文件;md5文件用于客户端对获取到的最新的h5页面资源包进行验证。
201.本实施例提供的页面资源加载装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
202.关于页面资源加载装置的具体限定可以参见上文中对于页面资源加载方法的限定,在此不再赘述。上述页面资源加载装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
203.在一个实施例中,提供了一种计算机设备,该计算机设备可以是客户端或者服务端,其内部结构图可以如图12所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储资源更新文件和md5文件。该计算机设备的网络接口用于与外部的终点通过网络连接通信。该计算机程序被处理器执行时以实现一种页面资源加载方法。
204.本领域技术人员可以理解,图12中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
205.在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
206.检测到app启动时,获取资源更新文件;
207.根据资源更新文件,确定本地h5页面资源包是否为最新版本;
208.若否,则从服务端获取最新的h5页面资源包;
209.根据最新的h5页面资源包的第一md5值,对最新的h5页面资源包进行验证,在验证通过后加载最新的h5页面资源包中的h5页面资源文件。
210.在一个实施例中,处理器执行计算机程序时还实现以下步骤:
211.将h5页面资源文件压缩后得到最新的h5页面资源包;
212.根据最新的h5页面资源包的第一md5值配置资源更新文件;资源更新文件用于确定客户端获取到的最新的h5页面资源包是否为最新版本;
213.根据h5页面资源文件的第四md5值配置md5文件;md5文件用于客户端对获取到的最新的h5页面资源包进行验证。
214.在一个实施例中,提供了一种存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
215.检测到app启动时,获取资源更新文件;
216.根据资源更新文件,确定本地h5页面资源包是否为最新版本;
217.若否,则从服务端获取最新的h5页面资源包;
218.根据最新的h5页面资源包的第一md5值,对最新的h5页面资源包进行验证,在验证通过后加载最新的h5页面资源包中的h5页面资源文件。
219.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
220.将h5页面资源文件压缩后得到最新的h5页面资源包;
221.根据最新的h5页面资源包的第一md5值配置资源更新文件;资源更新文件用于确定客户端获取到的最新的h5页面资源包是否为最新版本;
222.根据h5页面资源文件的第四md5值配置md5文件;md5文件用于客户端对获取到的最新的h5页面资源包进行验证。
223.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-only memory,rom)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。
224.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
225.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献