System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及页面前端开发,具体而言,涉及一种多版本前端资源加载方法、系统及存储介质。
技术介绍
1、目前,页面前端资源的加载主要以单版本为主,即一个页面在同一时刻只能加载一个版本的前端资源,但随着网络业务的快速发展,运行环境的改变导致对页面的多版本前端资源加载有着较高的需求。一般通过在不同运行环境下部署不同版本的前端资源或在后端引入动态模板库来应对多版本资源的加载。
2、在现有技术中,对于不同运行环境下部署不同版本的前端资源的方案,每个运行环境必须配置单个前端资源,而单个运行环境并不能做到快速切换前端资源版本,如果需要切换版本必须重新部署前端资源;对于后端引入动态模板库的方案,则需要依赖于后端的架构,导致对后端的启动和运行性能产生负面影响,因此,上述两个方案均会降低针对多版本前端资源加载的灵活程度。
技术实现思路
1、本专利技术解决的问题是如何提高前端对多版本前端资源加载及切换的敏捷性。
2、为解决上述问题,本专利技术提供一种多版本前端资源加载方法、系统及存储介质。
3、第一方面,本专利技术提供了一种多版本前端资源加载方法,包括:
4、从页面后端接口获取当前环境对应版本的版本号;
5、从多版本资源包中的预设固定路径确定所述版本号对应的文件夹,并从所述文件夹中加载所述版本号对应的前端入口模板文件;其中,所述多版本资源包的所述预设固定路径下包括多个所述文件夹,一个所述文件夹中对应存储一个所述版本的前端资源和所述版本对应的所述
6、对所述前端入口模板文件进行解析,得到所述前端入口模板文件的资源标签文件;
7、根据所述资源标签文件进行加载,得到所述版本的所述前端资源。
8、可选地,所述从页面后端接口获取当前环境对应版本的版本号,包括:
9、通过前端发起get请求至所述页面后端接口,其中,所述页面后端接口用于接收所述get请求时,并发送一个标准字符串至所述前端;
10、对所述标准字符串进行解析,得到所述当前环境对应所述版本的所述版本号。
11、可选地,所述从多版本资源包中的预设固定路径确定所述版本号对应的文件夹,并从所述文件夹中加载所述版本号对应的前端入口模板文件,包括:
12、将所述预设固定路径的路径名称与所述版本号进行拼接,得到拼接信息;
13、在所述拼接信息中加入所述前端入口模板文件的命名后缀,得到请求地址;
14、根据所述请求地址确定所述版本号对应的所述文件夹;
15、从所述文件夹中获取所述版本号对应的所述前端入口模板文件。
16、可选地,所述对所述前端入口模板文件进行解析,得到所述前端入口模板文件的资源标签文件,包括:
17、建立一个空的初始数组;
18、根据预设内容类型,将所述前端入口模板文件的字符串转换为dom对象;
19、对所述dom对象进行遍历,得到返回的所述版本对应的多个网页元素;
20、对每个所述网页元素的标签属性进行判断,将需要的所述网页元素作为资源记录追加至所述初始数组,得到所述前端入口模板文件的所述资源标签文件。
21、可选地,所述对每个所述网页元素的标签属性进行判断,将需要的所述网页元素作为资源记录追加至所述初始数组,包括:
22、根据所述网页元素的所述标签属性,判断所述网页元素是否为js资源或css样式资源;
23、若是,则判定所述网页元素为需要的所述网页元素,并将所述网页元素追加至所述初始数组;
24、若否,则判定所述网页元素为不需要的所述网页元素,并跳过所述网页元素。
25、可选地,所述根据所述资源标签文件进行加载,得到所述版本的所述前端资源,包括:
26、根据所述资源标签文件中每个所述网页元素的所述标签属性,建立所述网页元素对应的初始标签元素,并对所述初始标签元素进行赋值;
27、将赋值后的所述初始标签元素追加至页面head元素的末尾,完成对所述网页元素的加载,得到所述网页元素的所述前端资源。
28、可选地,所述根据所述资源标签文件中每个所述网页元素的所述标签属性,建立所述网页元素对应的初始标签元素,包括:
29、根据所述标签属性判定所述网页元素为所述js资源时,将script标签元素作为所述js资源对应的所述初始标签元素;
30、根据所述标签属性判定所述网页元素为所述css样式资源时,若所述css样式资源为外链资源,则将link标签元素作为所述css样式资源的所述初始标签元素;若所述css样式资源为内链资源,则将style标签元素作为所述css样式资源的所述初始标签元素。
31、可选地,还包括:构建所述多版本资源包;
32、所述构建所述多版本资源包,具体包括:
33、根据网页需要的所述版本,建立配置文件,所述配置文件中包括每个所述版本的npm包版本信息;
34、根据所述版本的所述npm包版本信息,得到对应所述版本的tar包路径地址;
35、根据所述tar包路径地址下载tar包资源;
36、将所述tar包资源解压得到所述版本的所述前端资源,并将每个所述版本所述前端资源单独存储至所述预设固定路径下的所述文件夹中;
37、当所有所述版本的所述前端资源均存储至对应的所述文件夹后,将所述预设固定路径中的文件夹合并,得到所述多版本资源包。
38、第二方面,本专利技术提供了一种多版本前端资源加载系统,包括:
39、版本号获取单元,用于从页面后端接口获取当前环境对应版本的版本号;
40、资源提取单元,用于从多版本资源包中的预设固定路径确定所述版本号对应的文件夹,并从所述文件夹中加载所述版本号对应的前端入口模板文件;其中,所述多版本资源包的所述预设固定路径下包括多个所述文件夹,一个所述文件夹中对应存储一个所述版本的前端资源和所述版本对应的所述前端入口模板文件;
41、资源解析单元,用于对所述前端入口模板文件进行解析,得到所述前端入口模板文件的资源标签文件;
42、资源加载单元,用于根据所述资源标签文件进行加载,得到所述版本的所述前端资源。
43、第三方面,本专利技术提供了一种计算机可读存储介质,所述存储介质上存储有计算机程序,当所述计算机程序被处理器执行时,实现如上述任一项所述的油品移动方法。
44、本专利技术的多版本前端资源加载方法、系统及存储介质,由前端从页面后端接口动态获取版本号,获取流程由前端全部自己单独运行,实现了前后端的解耦,使得前端资源的管理和部署更加独立,同时减少了后端架构的复杂性。其次,通过从多版本资源包中寻找对应版本独立的文件夹,并从中获取相应的前端资源和入口模板文件,通过多个不同的文件夹对不同版本的前端资源分别进行管理,从而支持多版本资源的共存与隔离,同时还优化了资本文档来自技高网...
【技术保护点】
1.一种多版本前端资源加载方法,其特征在于,包括:
2.根据权利要求1所述的多版本前端资源加载方法,其特征在于,所述从页面后端接口获取当前环境对应版本的版本号,包括:
3.根据权利要求1所述的多版本前端资源加载方法,其特征在于,所述从多版本资源包中的预设固定路径确定所述版本号对应的文件夹,并从所述文件夹中加载所述版本号对应的前端入口模板文件,包括:
4.根据权利要求1所述的多版本前端资源加载方法,其特征在于,所述对所述前端入口模板文件进行解析,得到所述前端入口模板文件的资源标签文件,包括:
5.根据权利要求4所述的多版本前端资源加载方法,其特征在于,所述对每个所述网页元素的标签属性进行判断,将需要的所述网页元素作为资源记录追加至所述初始数组,包括:
6.根据权利要求5所述的多版本前端资源加载方法,其特征在于,所述根据所述资源标签文件进行加载,得到所述版本的所述前端资源,包括:
7.根据权利要求6所述的多版本前端资源加载方法,其特征在于,所述根据所述资源标签文件中每个所述网页元素的所述标签属性,建立所述网页元素
8.根据权利要求1所述的多版本前端资源加载方法,其特征在于,还包括:构建所述多版本资源包;
9.一种多版本前端资源加载系统,其特征在于,包括:
10.一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机程序,当所述计算机程序被处理器执行时,实现如权利要求1-8任一项所述的多版本前端资源加载方法。
...【技术特征摘要】
1.一种多版本前端资源加载方法,其特征在于,包括:
2.根据权利要求1所述的多版本前端资源加载方法,其特征在于,所述从页面后端接口获取当前环境对应版本的版本号,包括:
3.根据权利要求1所述的多版本前端资源加载方法,其特征在于,所述从多版本资源包中的预设固定路径确定所述版本号对应的文件夹,并从所述文件夹中加载所述版本号对应的前端入口模板文件,包括:
4.根据权利要求1所述的多版本前端资源加载方法,其特征在于,所述对所述前端入口模板文件进行解析,得到所述前端入口模板文件的资源标签文件,包括:
5.根据权利要求4所述的多版本前端资源加载方法,其特征在于,所述对每个所述网页元素的标签属性进行判断,将需要的所述网页元素作为资源记录追加...
【专利技术属性】
技术研发人员:周俊辉,傅浩,牛奎杰,江杰,傅昆,
申请(专利权)人:中控技术股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。