一种文件压缩合并方法及相关装置制造方法及图纸

技术编号:19703102 阅读:25 留言:0更新日期:2018-12-08 14:25
本发明专利技术公开了一种文件压缩合并方法,可以自动确定入口文件和其依赖文件,并在其中确定未压缩文件,将未压缩文件进行压缩合并,从而可以避免对已压缩合并过的文件重复压缩合并,避免了对带宽资源的浪费,加快了页面加载的速度。同时,由于本方法无需限定文件名,而是自动确定入口文件和依赖文件、并自动确定未压缩合并文件的,因此无需编写、修改配置文件,减少了维护成本,此外即便对于不同的项目也可以复用本方法,减小了开发成本。本申请还提供了一种文件压缩合并系统、装置及计算机可读存储介质,同样可以实现上述技术效果。

【技术实现步骤摘要】
一种文件压缩合并方法及相关装置
本专利技术涉及前端
,更具体地说,涉及一种文件压缩合并方法、系统、装置及计算机可读存储介质。
技术介绍
随着现代web浏览器技术的飞速发展,随之而来的web前端性能优化问题也日益突出。目前解决前端性能问题主要方向是优化浏览器对javascript(一种直译式脚本语言,简称JS)文件资源的加载。传统的方式是前端代码发布的时候通过自动化构建工具(主流的grunt、gulp、webpack)将所有的JS资源文件合并、压缩,这样浏览器加载的就是一个经过压缩后的整体的资源文件。但是随着项目的复杂度不断提升,日新月异的前端技术也让前端代码的逻辑和交互原来越复杂,即便是把所有资源整合压缩仍然会受制于带宽限制,导致浏览器加载资源较慢,系统首页登录不够流畅。此外,模块化开发应用也越来越广泛,其思想是将项目分割成若干模块,只有当页面访问到某个模块内部的JS资源文件,才会加载该JS及依赖的资源文件,实现了按需加载,优化了首页登录加载资源过多导致的性能问题。但是由于不同模块之间可能存在相同的依赖文件,在对不同模块进行压缩合并时,就会出现重复打包的情况,例如,文件app.js依赖于a.js,app1.js也依赖a.js,那么压缩合并app.js和app1.js时,可能会把a.js压缩合并2次,a.js就是重复压缩合并,当重复压缩合并的文件过多时,则会严重占用带宽资源。目前虽已由避免重复压缩合并的机制,但是该方法需要在配置文件中手动添加避免被压缩合并的文件的文件名,这样随着项目的深入,文件的增多,需要不断修改配置文件,增加了维护成本,并且,不同项目的文件名也不同在不同文件中,配置文件不能服用,需要重新修改配置文件,增加了开发成本。因此,如何方便的避免文件重复压缩合并,是本领域技术人员需要解决的问题。
技术实现思路
本专利技术的目的在于提供一种文件压缩合并方法、系统、装置及计算机可读存储介质,以解决如何方便的避免文件重复压缩合并的问题。为实现上述目的,本专利技术实施例提供了如下技术方案:一种文件压缩合并方法,包括:确定文件模块的入口文件与所述入口文件所依赖的依赖文件;其中所述依赖文件包括所述入口文件直接依赖的文件与间接依赖的文件;确定所述入口文件与所述依赖文件中没有被压缩合并过的未压缩合并文件;将所述未压缩合并文件进行压缩合并。其中,所述确定所述入口文件与所述依赖文件中没有被压缩合并过的未压缩合并文件,包括:利用压缩合并记录确定所述入口文件与所述依赖文件中没有被压缩合并过的未压缩合并文件;则所述将所述未压缩合并文件进行压缩合并之后,还包括:将所述未压缩合并文件作为已压缩合并文件添加到所述压缩合并记录。其中,所述确定文件模块的入口文件与所述入口文件所依赖的依赖文件,包括:利用预设路由关系依次确定目标文件模块的入口文件与所述入口文件所依赖的依赖文件。其中,所述将所述未压缩合并文件进行压缩合并,包括:判断所述未压缩合并文件的大小是否大于预设阈值;若是,则将所述未压缩合并文件压缩合并至至少两个压缩文件;若否,则将所述未压缩合并文件压缩合并至一个压缩文件。其中,所述预设阈值为根据当前带宽确定的预设阈值。本申请还提供了一种文件压缩合并系统,包括:第一确定模块,用于确定文件模块的入口文件与所述入口文件所依赖的依赖文件;其中所述依赖文件包括所述入口文件直接依赖的文件与间接依赖的文件;第二确定模块,用于确定所述入口文件与所述依赖文件中没有被压缩合并过的未压缩合并文件;压缩合并模块,用于将所述未压缩合并文件进行压缩合并。其中,所述第二确定模块具体用于:利用压缩合并记录确定所述入口文件与所述依赖文件中没有被压缩合并过的未压缩合并文件;则所述系统还包括:添加模块,用于将所述未压缩合并文件进行压缩合并之后,将所述未压缩合并文件作为已压缩合并文件添加到所述压缩合并记录。其中,所述压缩合并模块,包括:判断单元,用于判断所述未压缩合并文件的大小是否大于预设阈值;第一压缩合并单元,用于当所述未压缩合并文件的大小大于预设阈值时,将所述未压缩合并文件压缩合并至至少两个压缩文件;第二压缩合并单元,用于当所述未压缩合并文件的大小不大于所述预设阈值时,将所述未压缩合并文件压缩合并至一个压缩文件。本申请还提供了一种文件压缩合并装置,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现如所述文件压缩合并方法的步骤。本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如所述文件压缩合并方法的步骤。通过以上方案可知,本专利技术提供的一种文件压缩合并方法,包括:确定文件模块的入口文件与所述入口文件所依赖的依赖文件;其中所述依赖文件包括所述入口文件直接依赖的文件与间接依赖的文件;确定所述入口文件与所述依赖文件中没有被压缩合并过的未压缩合并文件;将所述未压缩合并文件进行压缩合并。由此可见,本申请提供的一种文件压缩合并方法,可以自动确定入口文件和其依赖文件,并在其中确定未压缩文件,将未压缩文件进行压缩合并,从而可以避免对已压缩合并过的文件重复压缩合并,避免了对带宽资源的浪费,加快了页面加载的速度。同时,由于本方法无需限定文件名,而是自动确定入口文件和依赖文件、并自动确定未压缩合并文件的,因此无需编写、修改配置文件,减少了维护成本,此外即便对于不同的项目也可以复用本方法,减小了开发成本。本申请还提供了一种文件压缩合并系统、装置及计算机可读存储介质,同样可以实现上述技术效果。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例公开的一种文件压缩合并方法流程图;图2为本专利技术实施例公开的一种具体的文件压缩合并方法流程图;图3为本专利技术实施例公开的一种文件压缩合并系统结构示意图;图4为本专利技术实施例公开的一种文件压缩合并装置结构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本专利技术实施例公开了一种文件压缩合并方法、系统、装置及计算机可读存储介质,以解决如何方便的避免文件重复压缩合并的问题。参见图1,本专利技术实施例提供的一种文件压缩合并方法,具体包括:S101,确定文件模块的入口文件与所述入口文件所依赖的依赖文件;其中所述依赖文件包括所述入口文件直接依赖的文件与间接依赖的文件。在本方案中,无需手动配置有依赖关系的文件以及需要避免重复压缩合并的文件名,而是通过自动扫描的方式确定有依赖关系的文件,同时避免文件的重复压缩合并。具体地,首先确定文件模块的入口文件,和该入口文件所依赖的依赖文件。需要说明的是,在每个JS文件的内部,都会有标识依赖文件的信息,通过扫描该信息确定当前扫描的文件所依赖的文件,将该文件作为依赖文件。需要说明的是,依赖文件可能会有层次本文档来自技高网
...

【技术保护点】
1.一种文件压缩合并方法,其特征在于,包括:确定文件模块的入口文件与所述入口文件所依赖的依赖文件;其中所述依赖文件包括所述入口文件直接依赖的文件与间接依赖的文件;确定所述入口文件与所述依赖文件中没有被压缩合并过的未压缩合并文件;将所述未压缩合并文件进行压缩合并。

【技术特征摘要】
1.一种文件压缩合并方法,其特征在于,包括:确定文件模块的入口文件与所述入口文件所依赖的依赖文件;其中所述依赖文件包括所述入口文件直接依赖的文件与间接依赖的文件;确定所述入口文件与所述依赖文件中没有被压缩合并过的未压缩合并文件;将所述未压缩合并文件进行压缩合并。2.根据权利要求1所述的方法,其特征在于,所述确定所述入口文件与所述依赖文件中没有被压缩合并过的未压缩合并文件,包括:利用压缩合并记录确定所述入口文件与所述依赖文件中没有被压缩合并过的未压缩合并文件;则所述将所述未压缩合并文件进行压缩合并之后,还包括:将所述未压缩合并文件作为已压缩合并文件添加到所述压缩合并记录。3.根据权利要求1所述的方法,其特征在于,所述确定文件模块的入口文件与所述入口文件所依赖的依赖文件,包括:利用预设路由关系依次确定目标文件模块的入口文件与所述入口文件所依赖的依赖文件。4.根据权利要求1至3任意一项所述的方法,其特征在于,所述将所述未压缩合并文件进行压缩合并,包括:判断所述未压缩合并文件的大小是否大于预设阈值;若是,则将所述未压缩合并文件压缩合并至至少两个压缩文件;若否,则将所述未压缩合并文件压缩合并至一个压缩文件。5.根据权利要求4所述的方法,其特征在于,所述预设阈值为根据当前带宽确定的预设阈值。6.一种文件压缩合并系统,其特征在于,包括:第一确定模块,用于确定文件模块的入口文件与所述...

【专利技术属性】
技术研发人员:马聪
申请(专利权)人:郑州云海信息技术有限公司
类型:发明
国别省市:河南,41

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1