前端资源包压缩方法、装置、电子设备及存储介质

文档序号:1889376 发布日期:2021-11-26 浏览:36次 >En<

阅读说明:本技术 前端资源包压缩方法、装置、电子设备及存储介质 (Front-end resource package compression method and device, electronic equipment and storage medium ) 是由 黄康 于 2021-08-31 设计创作,主要内容包括:本发明涉及人工智能领域,揭露了一种前端资源包压缩方法,包括:筛选体积大于阈值的标记语言文件,得到待精简标记语言文件;利用标识符对各个待精简标记语言文件中的数据段落进行替换,得到已精简标记语言文件,将数据段落存储至json文件;对json文件进行字符串精简操作,得到精简json文件;对标记语言文件中各个层叠样式文件提取公共样式,得到公共层叠样式文件;将体积不大于阈值的各个标记语言文件与已精简标记语言文件进行排序,并将排序结果与精简json文件及公共层叠样式文件打包,得到压缩文件包。本发明还提供了一种前端资源包压缩装置、电子设备及存储介质。本发明可以降低前端资源包的数据量,增强网络适用性。(The invention relates to the field of artificial intelligence, and discloses a front-end resource packet compression method, which comprises the following steps: screening the markup language files with the volume larger than a threshold value to obtain markup language files to be simplified; replacing the data paragraphs in each markup language file to be simplified by using the identifiers to obtain a simplified markup language file, and storing the data paragraphs into a json file; carrying out character string simplification operation on the json file to obtain a simplified json file; extracting a common style from each stack style file in the markup language file to obtain a common stack style file; sequencing each markup language file with the volume not larger than the threshold value and the simplified markup language file, and packaging the sequencing result, the simplified json file and the common cascading style file to obtain a compressed file package. The invention also provides a front-end resource packet compression device, electronic equipment and a storage medium. The invention can reduce the data volume of the front-end resource packet and enhance the network applicability.)

前端资源包压缩方法、装置、电子设备及存储介质

技术领域

本发明涉及人工智能领域,尤其涉及一种前端资源包压缩方法、装置、电子设备及计算机可读存储介质。

背景技术

随着互联网的发展,软件种类日益丰富,各个软件应用逐渐成为人们日常生活中不可或缺的部分。然而在软件应用上线,客户完成软件应用的安装操作后,客户启动软件,特别是首次启动时,移动端设备需要先执行所述软件的前端资源包,保证软件应用的正常执行。但前端资源包的数据量较大、加载过程耗时较长极大影响客户体验。

业界通常采用对前端资源包进行拆块的方法,将前端资源包进行分批次启动,减少用户每次登录软件应用时的等待时间,等用户点开某个功能时,再对所述功能的数据进行加载。所述拆块的方法需要研发人员对客户的前端资源包执行拆分、试验、重新拆分的操作,保证即使部分数据不被引用,软件应用仍能够正常执行。但是这种方法效率较低,容易存在漏洞且具有较长的产品研发周期。

发明内容

本发明提供一种前端资源包压缩方法,其主要目的在于降低前端资源包的数据量,保证产品在弱网络环境下可以正常启动。

为实现上述目的,本发明提供的一种前端资源包压缩方法,包括:

从前端资源包中筛选文件体积值大于预设的精简阈值的标记语言文件,得到待精简标记语言文件;

获取所述待精简标记语言文件中的预设类型的数据段落,利用预设的唯一标识符对各个所述数据段落进行一对一替换,记录替换对应关系,得到所述待精简标记语言文件对应的已精简标记语言文件,并根据所述替换对应关系将被替换出的各个数据段落存储至预构建的json文件;

根据预设的精简策略,对所述json文件进行字段删除及字符串精简操作,得到精简json文件;

根据所述精简策略,对所述标记语言文件中各个层叠样式文件执行字段删除及字符串精简操作,得到简化层叠样式文件,并提取所述简化层叠样式文件中的公共样式,得到公共层叠样式文件;

根据预设的文件启动顺序,将所述前端资源包中的文件体积值小于或等于所述精简阈值的各个标记语言文件与各个所述已精简标记语言文件进行排序,得到配置框架包,并将所述配置框架包、所述精简json文件及所述公共层叠样式文件打包,得到所述前端资源包的压缩文件包。

可选的,所述将被替换出的各个数据段落存储至预构建的json文件,包括:

利用预构建的场景协同服务,新建一个json文件,并利用所述待精简标记语言文件的文件名对所述json文件进行命名;

根据所述唯一标识符,在所述json文件中构建与所述唯一标识符相对应的层级,并将各个所述数据段落保存至对应唯一标识符的层级下。

可选的,所述根据预设的精简策略,对所述json文件进行精简操作,得到精简json文件,包括:

删除所述json文件中与预设待删除字段相关的字符数据,得到干净数据;

构建全局唯一命名空间,并利用所述全局唯一命名空间将所述干净数据中的各个变量进行名称字符简化操作,得到简化数据;

识别所述简化数据中的源贴图文件,并从所述简化数据中删除所述源贴图文件,得到所述精简json文件。

可选的,所述提取所述简化层叠样式文件中的公共样式,得到公共层叠样式文件,包括:

查询所述简化层叠样式文件中的样式类及样式申明,得到查询结果;

从所述查询结果中提取公共的样式类及公共的样式申明,得到所述公共层叠样式文件。

可选的,所述根据预设的文件启动顺序,将所述前端资源包中的文件体积值小于或等于所述精简阈值的各个标记语言文件与各个所述已精简标记语言文件进行排序,得到配置框架包,包括:

汇总所述前端资源包中文件体积值小于或等于所述精简阈值的各个标记语言文件与所述已精简标记语言文件,得到汇总文件;

利用预构建的组合分配服务,根据预设的前端页面内容规定,将所述汇总文件进行分块,得到各个前端页面对应的标记语言组块;

根据预设的文件启动顺序,对各个标记语言组块进行顺序排布,得到所述前端资源包对应的配置框架包。

可选的,所述将所述配置框架包、所述精简json文件及所述公共层叠样式文件打包,得到所述前端资源包的压缩文件包,包括:

根据各个所述已精简标记语言文件中的各个唯一标识符,将所述精简json文件与所述配置框架包进行链接,得到配置资源包;

将所述配置资源包与所述公共层叠样式文件进行打包,得到所述前端资源包的压缩文件包。

可选的,所述得到所述前端资源包的压缩文件包之后,所述方法还包括:

利用预构建的编码器对所述压缩文件包进行编码,得到编码数据;

根据预设的切割规则,对所述编码数据进行切割,得到各个编码块;

利用分布式算法将各个编码块存储至预构建的数据库服务器中。

为了解决上述问题,本发明还提供一种前端资源包压缩装置,所述装置包括:

标记语言文件精简模块,用于从前端资源包中筛选文件体积值大于预设的精简阈值的标记语言文件,得到待精简标记语言文件,及获取所述待精简标记语言文件中的预设类型的数据段落,利用预设的唯一标识符对各个所述数据段落进行一对一替换,记录替换对应关系,得到所述待精简标记语言文件对应的已精简标记语言文件,并根据所述替换对应关系将被替换出的各个数据段落存储至预构建的json文件;

json文件压缩模块,用于根据预设的精简策略,对所述json文件进行字段删除及字符串精简操作,得到精简json文件;

公共层叠样式文件提取模块,用于根据所述精简策略,对所述标记语言文件中各个层叠样式文件执行字段删除及字符串精简操作,得到简化层叠样式文件,并提取所述简化层叠样式文件中的公共样式,得到公共层叠样式文件;

压缩包生成模块,用于根据预设的文件启动顺序,将所述前端资源包中的文件体积值小于或等于所述精简阈值的各个标记语言文件与各个所述已精简标记语言文件进行排序,得到配置框架包,并将所述配置框架包、所述精简json文件及所述公共层叠样式文件打包,得到所述前端资源包的压缩文件包。

为了解决上述问题,本发明还提供一种电子设备,所述电子设备包括:

至少一个处理器;以及,

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以实现上述所述的前端资源包压缩方法。

为了解决上述问题,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一个计算机程序,所述至少一个计算机程序被电子设备中的处理器执行以实现上述所述的前端资源包压缩方法。

本发明实施例通过对前端资源包中将文件体积大于预设精简阈值的标记语言文件作为待精简标记语言文件,获取在所述待精简标记语言文件中记载预设类型的各个数据段落的位置,并在每个位置上标记一个预设的唯一标识符,其中,所述唯一标识符可以链接标记语言文件及所述json文件,软件应用运行时先只运行标记语言文件,当用户点开某个内容时,就可以通过所述唯一标识符调取所述json文件,本发明通过减少前端资源包的图片、条约文档等非必要的结构数据,从而减小体积;进一步的,再根据所述精简策略,将所述json文件精简为所述精简json文件,并将层叠样式文件精简成所述公共层叠样式文件,进一步减小前端资源包中的数据量,从而保证产品在弱网络环境下能够正常启动;同时,本发明通过精简策略进行压缩,极大增加了压缩效率。因此,本发明提出的一种前端资源包压缩方法、装置、电子设备及存储介质可以提高前端资源包在压缩过程的压缩效率。

附图说明

图1为本发明一实施例提供的前端资源包压缩方法的流程示意图;

图2为本发明第一实施例中图1提供的前端资源包压缩方法其中一个步骤的详细流程示意图;

图3为本发明一实施例提供的前端资源包压缩装置的模块示意图;

图4为本发明一实施例提供的实现前端资源包压缩方法的电子设备的内部结构示意图;

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本申请实施例提供一种前端资源包压缩方法。所述前端资源包压缩方法的执行主体包括但不限于服务端、终端等能够被配置为执行本申请实施例提供的该方法的电子设备中的至少一种。换言之,所述前端资源包压缩方法可以由安装在终端设备或服务端设备的软件或硬件来执行,所述软件可以是区块链平台。所述服务端可以是独立的服务器,也可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。

参照图1所示,为本发明一实施例提供的前端资源包压缩方法的流程示意图。在本发明实施例中,所述前端资源包压缩方法包括:

S1、从前端资源包中筛选文件体积值大于预设的精简阈值的标记语言文件,得到待精简标记语言文件。

所述前端资源包为预设的软件应用安装到客户端上的全部文件的合集,包括标记语言文件、json文件等。本发明实施例中,所述标记语言为超文本标记语言(HyperTextMarkup Language,简记html),所述html文件是可以被多种网页浏览器读取,产生网页传递各类资讯的文件,多应用于软件应用的前端界面中。其中,json是全称为JavaScriptObject Notation,所述json文件是一种轻量级的数据交换格式的文件,采用完全独立于编程语言的文本格式来存储和表示数据,易于机器解析和生成,本发明实施例利用所述json文件存储所述html文件中的文本段落、视频、图片等数据,能够有效地提升网络传输效率,增加所述软件应用的启动速度。

本发明实施例中,查询所述前端资源包中的各个html文件的文件大小,得到各个html文件的体积值;判断各个html文件的体积值与预设的精简阈值之间的关系;将体积值小于或等于预设的精简阈值的html文件判定为无需精简html文件,并将体积值大于预设的精简阈值的html文件判定为待精简html文件。

具体的,所述前端资源包中的html文件中可能含有以“万”为数量级的字符串,如各类“用户使用协议”等文本,包含所述文本的html文件的文本体积较大,通常大于所述预设精简阈值,其中,本发明实施例将所述精简阈值设置为300KB。

本发明实施例中筛选所述前端资源包中的全部html文件,并将体积值大于300KB的html文件定义为待精简html文件。本发明实施例通过对所述待精简html文件进行精简可以减少所述待精简文件的体积值,从而在初次启动所述软件应用时,无需加载用了大量数据,减少启动时长。

其中,本申请实施例可以基于人工智能技术对相关的数据进行S1至S6的相关过程,可以大大加快前端资源包的压缩效率。其中,人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。

S2、获取所述待精简标记语言文件中的预设类型的数据段落,利用预设的唯一标识符对各个所述数据段落进行一对一替换,得到所述待精简标记语言文件对应的已精简标记语言文件,并将被替换出的各个数据段落存储至预构建的json文件。

本发明实施例中,通过一个预构建的监控服务实现对所述前端资源包中的全部html文件进行类别监控,当html文件为无需精简的html文件时,无需处理;当html文件为待精简html文件时,将所述待精简html文件打开,根据所述待精简html文件中的各个闭合标签,将闭合标签中的文本段落、视频、图片等数据段落进行提取,并在所述闭合标签中存储所述数据段落的地方标记一个全局唯一的唯一标识符,得到所述已精简html文件。

详细的,本发明实施例中,所述将被替换出的各个数据段落存储至预构建的json文件,包括:

利用预构建的场景协同服务,新建一个json文件,并利用所述待精简标记语言文件的文件名对所述json文件进行命名;

根据所述唯一标识符,在所述json文件中构建与所述唯一标识符相对应的层级,并将各个所述数据段落保存至对应唯一标识符的层级下。

本发明实施例中,构建一个json文件,将所述json文件命名为所述待精简html文件相同的名字,命名完成之后,将所述唯一标识符与对应的数据段落一一对应存储至所述json文件中。

其中,所述已精简html文件中与所述json文件中都具有对应的唯一标识符,本发明实施例根据所述唯一标识符可以将所述已精简html文件与所述精简json文件之间建立链接。当所述软件应用启动时,率先执行各个已精简html文件,只有当客户查询详细数据,如协议内容等情况时,才会触发所述已精简html文件中的唯一标识符来调取json文件进行加载。

S3、根据预设的精简策略,对所述json文件进行字段删除及字符串精简操作,得到精简json文件。

本发明实施例中,所述精简策略为一种配置文件config.js中预先配置的一种精简过程执行策略,例如,对变量进行转化、缩写、删除等。

详细的,本发明实施例中,如图2所示,所述根据预设的精简策略,对所述json文件进行字段删除及字符串精简操作,得到精简json文件,包括:

S31、删除所述json文件中与预设待删除字段相关的字符数据,得到干净数据;

S32、构建全局唯一命名空间,并利用所述全局唯一命名空间将所述干净数据中的各个变量进行名称字符简化操作,得到简化数据;

S33、识别所述简化数据中的源贴图文件,并从所述简化数据中删除所述源贴图文件,得到所述精简json文件。

其中,所述源贴图文件为json的映射文件,只有在项目开发测试阶段才会用到,在上线阶段是不需要包含的,因此,本发明实施例将所述源贴图文件从所述json文件中剔除,可以减少的数据的量。

具体的,本发明实施例中,所述精简策略将所述待删除字段设置为注释及空格字符串,因此,本发明实施例将所述json文件中的各个注释及各个空格的字符串进行删除,得到干净数据,再将各个变量进行简化如“变量abcde”,简化为“变量a”,其中,为了保证简化后的各个变量为唯一变量,本发明实施例通过一个全局唯一命名空间,并将各个简化后的变量进行统一存储再所述全局唯一命名空间之下,利用所述全局唯一命名空间将每个简化后的变量进行记录,保证后续简化的变量无法与已简化得变量重读,如“变量abcde”,已经简化为“变量a”,“变量abcdefgh”,不能简化为“变量a”,但可以简化为“变量ab”,最后根据所述配置文件中的要求,将所述json文件中的sourceMap文件进行删除,得到所述精简json文件。

S4、根据所述精简策略,对所述标记语言文件中各个层叠样式文件执行字段删除及字符串精简操作,得到简化层叠样式文件,并提取所述简化层叠样式文件中的公共样式,得到公共层叠样式文件。

所述层叠样式(Cascading Style Sheets,下述简称CSS)文件为一种被html文件利用预设标签进行引用的一种文件,其中,包括各种通用数据库、常用程序包等。其中html文件经常多次引用或部分引用CSS样式文件,使得CSS样式文件存在冗余。

详细的,本发明实施例中,所述提取所述简化层叠样式文件中的公共样式,得到公共层叠样式文件,包括:

查询所述简化层叠样式文件中的样式类及样式申明,得到查询结果;

从所述查询结果中提取公共的样式类及公共的样式申明,得到所述公共层叠样式文件。

本发明实施例根据所述精简策略,如同上述S3中的删除空值、批注的操作及变量简化的操作,将所述CSS样式文件中的各个变量进行简化,得到简化CSS样式文件。

本发明实施例再分析各个CSS样式文件中,包含的相同的样式类进行提取,得到公共样式类;分析各个CSS样式文件中,包含的相同的样式申明语句进行提取,得到公共样式申明语句。将所述公共样式类及所述公共样式申明语句进行打包,生成所述公共CSS文件。

此外,本发明另一实施例还通过获取项目中包文件目录(package.json)文件中的框架名、库文件名,并从项目中的下载管理工具包(node_modules)目录下,查找各个框架名、库文件名对应的包文件大小,如果一个框架名或库文件名对应的包文件的大小,超过所述阈值,如100kb时,则将包文件大小大于100kb的包文件从项目中提取出来,保存至预构建的运行服务器中。其中,大于100kb包文件存储至服务器之后,当所述软件应用中需要使用到大小大于100kb框架和库文件的包文件时,可以线上加载的方式,从所述运行服务器引入所述包文件大小大于100kb框架和库文件,进一步的缩小前端资源包中的数据量。

S6、根据预设的文件启动顺序,将所述前端资源包中的文件体积值小于或等于所述精简阈值的各个标记语言文件与各个所述已精简标记语言文件进行排序,得到配置框架包,并将所述配置框架包、所述精简json文件及所述公共层叠样式文件打包,得到所述前端资源包的压缩文件包。

详细的,本发明实施例中,所述根据预设的文件启动顺序,将所述前端资源包中的文件体积值小于或等于所述精简阈值的各个标记语言文件与各个所述已精简标记语言文件进行排序,得到配置框架包,包括:

汇总所述前端资源包中文件体积值小于或等于所述精简阈值的各个标记语言文件与所述已精简标记语言文件,得到汇总文件;

利用预构建的组合分配服务,根据预设的前端页面内容规定,将所述汇总文件进行分块,得到各个前端页面对应的标记语言组块;

根据预设的文件启动顺序,对各个标记语言组块进行顺序排布,得到所述前端资源包对应的配置框架包。

具体的,本发明实施例中,将各个html前端页面对应的无需精简html文件或所述待精简html文件对应的资源包分配到一起,生成一个html组块,再引用所述html组块对应的所述公共层叠样式文件,得到所述html组块对应前端页面的完整的页面资源包。

将所述配置框架包、所述精简json文件及所述公共CSS文件打包,得到所述前端资源包的压缩文件包,包括:

根据各个所述已精简标记语言文件中的各个唯一标识符,将所述精简json文件与所述配置框架包进行链接,得到配置资源包;

详细的,本发明实施例中,所述将所述配置框架包、所述精简json文件及所述公共CSS文件打包,得到所述前端资源包的压缩文件包,包括:

根据各个所述已精简标记语言文件中的各个唯一标识符,将所述精简json文件与所述配置框架包进行链接,得到配置资源包;

将所述配置资源包与所述公共层叠样式文件进行打包,得到所述前端资源包的压缩文件包。

最后,根据所述文件启动顺序,将各个前端页面对应的页面资源包进行排序,得到所述前端资源包对应的压缩文件包。

进一步的,本发明实施例中,可以通过配置文件config.js,构建前端资源包自动瘦身工具,并通过预设的npm i pa-resource-auto-thin-D启动命令,启动预构建的前端资源包自动瘦身工具实现上述S1~S6的操作过程。其中,所述配置文件config.js包括:“html文件精简阈值,默认是300KB”、“是否需要删除json文件中的源贴图文件”、“组合顺序智能配置”、“框架、库文件在线地址目录文件夹地址”等。

进一步的,本发明另一实施例中,所述得到所述前端资源包的压缩文件包之后,所述方法还包括:

利用预构建的编码器对所述压缩文件包进行编码,得到编码数据;

根据预设的切割规则,对所述编码数据进行切割,得到各个编码块;

利用分布式算法将各个编码块存储至预构建的数据库服务器中。

具体的,本发明另一实施例通过预构建的纠删码对所述压缩文件包进行编码及切块操作,得到各个编码块,再利用hash算法对各个编码块进行分布式存储至数据服务器中,从而增加压缩文件包的存储安全性。其中,纠删码为一种多副本方式的数据保护机制,能有效避免部分数据丢失造成原始数据受损的情况。

本发明实施例通过对前端资源包中将文件体积大于预设精简阈值的标记语言文件作为待精简标记语言文件,获取在所述待精简标记语言文件中记载预设类型的各个数据段落的位置,并在每个位置上标记一个预设的唯一标识符,其中,所述唯一标识符可以链接标记语言文件及所述json文件,软件应用运行时先只运行标记语言文件,当用户点开某个内容时,就可以通过所述唯一标识符调取所述json文件,本发明通过减少了前端资源包的图片、条约文档等非必要的结构数据,从而减小体积;进一步的,再根据所述精简策略,将所述json文件精简为所述精简json文件,并将层叠样式文件精简成所述公共层叠样式文件,进一步减小前端资源包中的数据量,从而保证产品在弱网络环境下能够正常启动;同时,本发明通过精简策略进行压缩,极大增加了压缩效率。因此,本发明提出的一种前端资源包压缩方法、装置、电子设备及存储介质可以提高前端资源包在压缩过程的压缩效率。

如图3所示,是本发明前端资源包压缩装置的功能模块图。

本发明所述前端资源包压缩装置100可以安装于电子设备中。根据实现的功能,所述前端资源包压缩装置可以包括标记语言文件精简模块101、json文件压缩模块102、公共CSS文件提取模块103以及压缩包生成模块104。本发所述模块也可以称之为单元,是指一种能够被电子设备处理器所执行,并且能够完成固定功能的一系列计算机程序段,其存储在电子设备的存储器中。

在本实施例中,关于各模块/单元的功能如下:

所述标记语言文件精简模块101,用于从前端资源包中筛选文件体积值大于预设的精简阈值的标记语言文件,得到待精简标记语言文件,及获取所述待精简标记语言文件中的预设类型的数据段落,利用预设的唯一标识符对各个所述数据段落进行一对一替换,得到所述待精简标记语言文件对应的已精简标记语言文件,并将被替换出的各个数据段落存储至预构建的json文件。

所述前端资源包为预设的软件应用安装到客户端上的全部文件的合集,包括标记语言文件、json文件等。本发明实施例中,所述标记语言为超文本标记语言(HyperTextMarkup Language,简记html),所述标记语言文件是可以被多种网页浏览器读取,产生网页传递各类资讯的文件,多应用于软件应用的前端界面中。其中,json是全称为JavaScriptObject Notation,所述json文件是一种轻量级的数据交换格式的文件,采用完全独立于编程语言的文本格式来存储和表示数据,易于机器解析和生成,本发明实施例利用所述json文件存储所述html文件中的文本段落、视频、图片等数据,能够有效地提升网络传输效率,增加所述软件应用的启动速度。

本发明实施例中,查询所述前端资源包中的各个html文件的文件大小,得到各个html文件的体积值;判断各个html文件的体积值与预设的精简阈值之间的关系;将体积值小于或等于预设的精简阈值的html文件判定为无需精简html文件,并将体积值大于预设的精简阈值的html文件判定为待精简html文件。

具体的,所述前端资源包中的html文件中可能含有以“万”为数量级的字符串,如各类“用户使用协议”等文本,包含所述文本的html文件的文本体积较大,通常大于所述预设精简阈值,其中,本发明实施例将所述精简阈值设置为300KB。

本发明实施例中筛选所述前端资源包中的全部html文件,并将体积值大于300KB的html文件定义为待精简html文件。本发明实施例通过对所述待精简html文件进行精简可以减少所述待精简文件的体积值,从而在初次启动所述软件应用时,无需加载用了大量数据,减少启动时长。

进一步的,本发明实施例中,通过配置文件config.js,构建了前端资源包自动瘦身工具。通过预设的npmi pa-resource-auto-thin-D启动命令,启动预构建的前端资源包自动瘦身工具的操作过程。其中,所述配置文件config.js中包括:“html文件精简阈值,默认是300KB”、“是否需要删除json文件中的源贴图文件”、“组合顺序智能配置”、“框架、库文件在线地址目录文件夹地址”等。

本发明实施例中,通过一个预构建的监控服务实现对所述前端资源包中的全部html文件进行类别监控,当html文件为无需精简的html文件时,无需处理;当html文件为待精简html文件时,将所述待精简html文件打开,根据所述待精简html文件中的各个闭合标签,将闭合标签中的文本段落、视频、图片等数据段落进行提取,并在所述闭合标签中存储所述数据段落的地方标记一个全局唯一的唯一标识符,得到所述已精简html文件。

详细的,本发明实施例中,所述标记语言文件精简模块101在将被替换出的各个数据段落存储至预构建的json文件时,具体用于:

利用预构建的场景协同服务,新建一个json文件,并利用所述待精简标记语言文件的文件名对所述json文件进行命名;

根据所述唯一标识符,在所述json文件中构建与所述唯一标识符相对应的层级,并将各个所述数据段落保存至对应唯一标识符的层级下。

本发明实施例中,构建一个json文件,将所述json文件命名为所述待精简html文件相同的名字,命名完成之后,将所述唯一标识符与对应的数据段落一一对应存储至所述json文件中。

其中,所述已精简html文件中与所述json文件中都具有对应的唯一标识符,本发明实施例根据所述唯一标识符可以将所述已精简html文件与所述精简json文件之间建立链接。当所述软件应用启动时,率先执行各个已精简html文件,只有当客户查询详细数据,如协议内容等情况时,才会触发所述已精简html文件中的唯一标识符来调取json文件进行加载。

所述json文件压缩模块102,用于根据预设的精简策略,对所述json文件进行字段删除及字符串精简操作,得到精简json文件。

所述精简策略为一种所述配置文件config.js中预先配置的一种精简过程执行策略,例如对变量进行转化、缩写、删除等。

详细的,本发明实施例中,所述json文件压缩模块102在根据预设的精简策略,对所述json文件进行字段删除及字符串精简操作,得到精简json文件时,具体用于:

删除所述json文件中与预设待删除字段相关的字符数据,得到干净数据;

构建全局唯一命名空间,并利用所述全局唯一命名空间将所述干净数据中的各个变量进行名称字符简化操作,得到简化数据;

识别所述简化数据中的源贴图文件,并从所述简化数据中删除所述源贴图文件,得到所述精简json文件。

其中,所述源贴图文件为json的映射文件,只有在项目开发测试阶段才会用到,在上线阶段是不需要包含的,因此,本发明实施例将所述源贴图文件从所述json文件中剔除,可以减少的数据的量。

具体的,本发明实施例中,所述精简策略将所述待删除字段设置为注释及空格字符串,因此,本发明实施例将所述json文件中的各个注释及各个空格的字符串进行删除,得到干净数据,再将各个变量进行简化如“变量abcde”,简化为“变量a”,其中,为了保证简化后的各个变量为唯一变量,本发明实施例通过一个全局唯一命名空间,并将各个简化后的变量进行统一存储再所述全局唯一命名空间之下,利用所述全局唯一命名空间将每个简化后的变量进行记录,保证后续简化的变量无法与已简化得变量重读,如“变量abcde”,已经简化为“变量a”,“变量abcdefgh”,不能简化为“变量a”,但可以简化为“变量ab”,最后根据所述配置文件中的要求,将所述json文件中的sourceMap文件进行删除,得到所述精简json文件。

所述公共CSS文件提取模块103,根据所述精简策略,对所述标记语言文件中各个层叠样式文件执行字段删除及字符串精简操作,得到简化层叠样式文件,并提取所述简化层叠样式样式文件中的公共样式,得到公共层叠样式文件。

所述CSS样式文件为一种被html文件利用预设标签进行引用的一种文件,其中,包括各种通用数据库、常用程序包等。其中html文件经常多次引用或部分引用CSS样式文件,使得CSS样式文件存在冗余。

详细的,本发明实施例中,所述公共层叠样式文件提取模块103在提取所述简化层叠样式文件中的公共样式,得到公共层叠样式文件时,具体用于:

查询所述简化层叠样式文件中的样式类及样式申明,得到查询结果;

从所述查询结果中提取公共的样式类及公共的样式申明,得到所述公共层叠样式文件。

本发明实施例根据所述精简策略,如同上述json文件压缩模块102中的删除空值、批注的操作及变量简化的操作,将所述层叠样式文件中的各个变量进行简化,得到简化层叠样式样式文件。

本发明实施例再分析各个CSS样式文件中,包含的相同的样式类进行提取,得到公共样式类;分析各个CSS样式文件中,包含的相同的样式申明语句进行提取,得到公共样式申明语句。将所述公共样式类及所述公共样式申明语句进行打包,生成所述公共CSS文件。

此外,本发明另一实施例还通过获取项目中包文件目录(package.json)文件中的框架名、库文件名,并从项目中的下载管理工具包(node_modules)目录下,查找各个框架名、库文件名对应的包文件大小,如果一个框架名或库文件名对应的包文件的大小,超过所述阈值,如100kb时,则将包文件大小大于100kb的包文件从项目中提取出来,保存至预构建的运行服务器中。其中,大于100kb包文件存储至服务器之后,当所述软件应用中需要使用到大小大于100kb框架和库文件的包文件时,可以线上加载的方式,从所述运行服务器引入所述包文件大小大于100kb框架和库文件,进一步的缩小前端资源包中的数据量。

所述压缩包生成模块104,用于根据预设的文件启动顺序,将所述前端资源包中的文件体积值小于或等于所述精简阈值的各个标记语言文件与各个所述已精简标记语言文件进行排序,得到配置框架包,并将所述配置框架包、所述精简json文件及所述公共层叠样式文件打包,得到所述前端资源包的压缩文件包。

详细的,本发明实施例中,所述所述压缩包生成模块104在根据预设的文件启动顺序,将所述前端资源包中的文件体积值小于或等于所述精简阈值的各个标记语言文件与各个所述已精简标记语言文件进行排序,得到配置框架包时,具体用于:

汇总所述前端资源包中文件体积值小于或等于所述精简阈值的各个标记语言文件与所述已精简标记语言文件,得到汇总文件;

利用预构建的组合分配服务,根据预设的前端页面内容规定,将所述汇总文件进行分块,得到各个前端页面对应的标记语言组块;

根据预设的文件启动顺序,对各个标记语言组块进行顺序排布,得到所述前端资源包对应的配置框架包。

具体的,本发明实施例中,将各个html前端页面对应的无需精简html文件或所述待精简html文件对应的资源包分配到一起,生成一个html组块,再引用所述html组块对应的所述公共层叠样式文件,得到所述html组块对应前端页面的完整的页面资源包。

将所述配置框架包、所述精简json文件及所述公共层叠样式文件打包,得到所述前端资源包的压缩文件包,包括:

根据各个所述已精简标记语言文件中的各个唯一标识符,将所述精简json文件与所述配置框架包进行链接,得到配置资源包;

详细的,本发明实施例中,所述压缩包生成模块104在将所述配置框架包、所述精简json文件及所述公共层叠样式文件打包,得到所述前端资源包的压缩文件包时,具体用于:

根据各个所述已精简标记语言文件中的各个唯一标识符,将所述精简json文件与所述配置框架包进行链接,得到配置资源包;

将所述配置资源包与所述公共层叠样式文件进行打包,得到所述前端资源包的压缩文件包。

最后,根据所述文件启动顺序,将各个前端页面对应的页面资源包进行排序,得到所述前端资源包对应的压缩文件包。

进一步的,本发明实施例中,可以通过配置文件config.js,构建前端资源包自动瘦身工具,并通过预设的npm i pa-resource-auto-thin-D启动命令,启动预构建的前端资源包自动瘦身装置的操作过程。其中,所述配置文件config.js包括:“html文件精简阈值,默认是300KB”、“是否需要删除json文件中的源贴图文件”、“组合顺序智能配置”、“框架、库文件在线地址目录文件夹地址”等。

进一步的,本发明另一实施例中,所述压缩包生成模块104在得到所述前端资源包的压缩文件包之后,还用于:

利用预构建的编码器对所述压缩文件包进行编码,得到编码数据;

根据预设的切割规则,对所述编码数据进行切割,得到各个编码块;

利用分布式算法将各个编码块存储至预构建的数据库服务器中。

具体的,本发明另一实施例通过预构建的纠删码对所述压缩文件包进行编码及切块操作,得到各个编码块,再利用hash算法对各个编码块进行分布式存储至数据服务器中,从而增加压缩文件包的存储安全性。其中,纠删码为一种多副本方式的数据保护机制,能有效避免部分数据丢失造成原始数据受损的情况。

如图4所示,是本发明实现前端资源包压缩方法的电子设备的结构示意图。

所述电子设备可以包括处理器10、存储器11、通信总线12以及通信接口13,还可以包括存储在所述存储器11中并可在所述处理器10上运行的计算机程序,如前端资源包压缩程序。

其中,所述处理器10在一些实施例中可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(Central Processing unit,CPU)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。所述处理器10是所述电子设备的控制核心(ControlUnit),利用各种接口和线路连接整个电子设备的各个部件,通过运行或执行存储在所述存储器11内的程序或者模块(例如执行前端资源包压缩程序等),以及调用存储在所述存储器11内的数据,以执行电子设备的各种功能和处理数据。

所述存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、移动硬盘、多媒体卡、卡型存储器(例如:SD或DX存储器等)、磁性存储器、磁盘、光盘等。所述存储器11在一些实施例中可以是电子设备的内部存储单元,例如该电子设备的移动硬盘。所述存储器11在另一些实施例中也可以是电子设备的外部存储设备,例如电子设备上配备的插接式移动硬盘、智能存储卡(Smart Media Card,SMC)、安全数字(Secure Digital,SD)卡、闪存卡(Flash Card)等。进一步地,所述存储器11还可以既包括电子设备的内部存储单元也包括外部存储设备。所述存储器11不仅可以用于存储安装于电子设备的应用软件及各类数据,例如前端资源包压缩程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。

所述通信总线12可以是外设部件互连标准(peripheral componentinterconnect,简称PCI)总线或扩展工业标准结构(extended industry standardarchitecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。所述总线被设置为实现所述存储器11以及至少一个处理器10等之间的连接通信。

所述通信接口13用于上述电子设备与其他设备之间的通信,包括网络接口和用户接口。可选地,所述网络接口可以包括有线接口和/或无线接口(如WI-FI接口、蓝牙接口等),通常用于在该电子设备与其他电子设备之间建立通信连接。所述用户接口可以是显示器(Display)、输入单元(比如键盘(Keyboard)),可选地,用户接口还可以是标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在电子设备中处理的信息以及用于显示可视化的用户界面。

图4仅示出了具有部件的电子设备,本领域技术人员可以理解的是,图4示出的结构并不构成对所述电子设备的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。

例如,尽管未示出,所述电子设备还可以包括给各个部件供电的电源(比如电池),优选地,电源可以通过电源管理装置与所述至少一个处理器10逻辑相连,从而通过电源管理装置实现充电管理、放电管理、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电装置、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。所述电子设备还可以包括多种传感器、蓝牙模块、Wi-Fi模块等,在此不再赘述。

应该了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。

所述电子设备中的所述存储器11存储的前端资源包压缩程序是多个计算机程序的组合,在所述处理器10中运行时,可以实现:

从前端资源包中筛选文件体积值大于预设的精简阈值的标记语言文件,得到待精简标记语言文件;

获取所述待精简标记语言文件中的预设类型的数据段落,利用预设的唯一标识符对各个所述数据段落进行一对一替换,得到所述待精简标记语言文件对应的已精简标记语言文件,并将被替换出的各个数据段落存储至预构建的json文件;

根据预设的精简策略,对所述json文件进行字段删除及字符串精简操作,得到精简json文件;

根据所述精简策略,对所述标记语言文件中各个层叠样式文件执行字段删除及字符串精简操作,得到简化层叠样式文件,并提取所述简化层叠样式文件中的公共样式,得到公共层叠样式文件;

根据预设的文件启动顺序,将所述前端资源包中的文件体积值小于或等于所述精简阈值的各个标记语言文件与各个所述已精简标记语言文件进行排序,得到配置框架包,并将所述配置框架包、所述精简json文件及所述公共层叠样式文件打包,得到所述前端资源包的压缩文件包。

具体地,所述处理器10对上述指令的具体实现方法可参考附图对应实施例中相关步骤的描述,在此不赘述。

进一步地,所述电子设备集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个非易失性计算机可读取存储介质中。所述计算机可读存储介质可以是易失性的,也可以是非易失性的。例如,所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)。

本发明还提供一种计算机可读存储介质,所述可读存储介质存储有计算机程序,所述计算机程序在被电子设备的处理器所执行时,可以实现:

从前端资源包中筛选文件体积值大于预设的精简阈值的标记语言文件,得到待精简标记语言文件;

获取所述待精简标记语言文件中的预设类型的数据段落,利用预设的唯一标识符对各个所述数据段落进行一对一替换,得到所述待精简标记语言文件对应的已精简标记语言文件,并将被替换出的各个数据段落存储至预构建的json文件;

根据预设的精简策略,对所述json文件进行字段删除及字符串精简操作,得到精简json文件;

根据所述精简策略,对所述标记语言文件中各个层叠样式文件执行字段删除及字符串精简操作,得到简化层叠样式文件,并提取所述简化层叠样式文件中的公共样式,得到公共层叠样式文件;

根据预设的文件启动顺序,将所述前端资源包中的文件体积值小于或等于所述精简阈值的各个标记语言文件与各个所述已精简标记语言文件进行排序,得到配置框架包,并将所述配置框架包、所述精简json文件及所述公共层叠样式文件打包,得到所述前端资源包的压缩文件包。

在本发明所提供的几个实施例中,应该理解到,所揭露的设备,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。

对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。

因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。

本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。

此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第二等词语用来表示名称,而并不表示任何特定的顺序。

最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。

20页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种以差分序列为基础的自动气象站自动集群方法及系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!