【技术实现步骤摘要】
本专利技术涉及计算机
,特别是涉及一种动态打包方法和装置。
技术介绍
对前端的静态资源的管理采用模块化技术之后,使得每个JS(JavaScript,一种直译式脚本语言)文件都可以视为一个模块,模块之间还存在依赖关系。当页面在前端运行时,如果没有对多个JS文件按照某种规则进行组合,也就是没有对多个JS文件进行打包,那么每个页面都会加载大量的JS文件,导致JS文件的链接数目增加,网络请求的负担加重。如果有大量的请求访问页面时,就会对后台服务器造成较大的压力。传统的方式是在设计期对多个JS文件进行打包,将每个页面所依赖的模块打包到一起,形成一个单一的JS文件。在运行期是页面就只加载打包后的JS文件,有效减少JS文件的链接数目。但是同一JS文件通常会在类似的页面被频繁下载,由此造成网络传输的数据量增大。
技术实现思路
基于此,有必要针对上述技术问题,提供一种能够有效减少网络传输数据量的动态打包方法和装置。一种动态打包方法,所述方法包括:接收浏览器发送的判断JS文件是否被修改的请求,所述请求中携带了JS文件集合和第一标识;根据所述JS文件集合计算所述请求对应的第二标识的值;判断所述第一标识的值与所述第二标识的值是否相等;若否,则进一步判断所述第一标识对应的临时文件是否存在,所述临时文件包括了用于动态打包的URL中的多个JS文件;若所述第一标识对应的临时文件不存在,则利用修改后的JS ...
【技术保护点】
一种动态打包方法,所述方法包括:接收浏览器发送的判断JS文件是否被修改的请求,所述请求中携带了JS文件集合和第一标识;根据所述JS文件集合计算所述请求对应的第二标识的值;判断所述第一标识的值与所述第二标识的值是否相等;若否,则进一步判断所述第一标识对应的临时文件是否存在,所述临时文件包括了用于动态打包的URL中的多个JS文件;若所述第一标识对应的临时文件不存在,则利用修改后的JS文件进行合并,得到修改后的临时文件,并将修改后的临时文件返回至所述浏览器。
【技术特征摘要】
1.一种动态打包方法,所述方法包括:
接收浏览器发送的判断JS文件是否被修改的请求,所述请求中携带了JS
文件集合和第一标识;
根据所述JS文件集合计算所述请求对应的第二标识的值;
判断所述第一标识的值与所述第二标识的值是否相等;
若否,则进一步判断所述第一标识对应的临时文件是否存在,所述临时文
件包括了用于动态打包的URL中的多个JS文件;
若所述第一标识对应的临时文件不存在,则利用修改后的JS文件进行合并,
得到修改后的临时文件,并将修改后的临时文件返回至所述浏览器。
2.根据权利要求1所述的方法,其特征在于,在所述接收浏览器发送的判
断JS文件是否被修改的请求的步骤之前,还包括:
根据配置文件对业务特性包进行打包;
利用界面特性包与所述业务特性包进行过滤,生成用于动态打包的URL。
3.根据权利要求2所述的方法,其特征在于,所述根据配置文件对业务特
性包进行打包的步骤包括:
读取配置文件,所述配置文件中包括多个业务特性包;
获取所述业务特性包所依赖的顶级模块;
根据所述业务特性包所依赖的顶级模块获取所述业务特性包对应的所有依
赖模块,得到所有的业务特性包模块;
对所述业务特性包模块进行排序;
将排序后的业务特性包模块打包为一个文件。
4.根据权利要求3所述的方法,其特征在于,所述利用界面特性包与所述
业务特性包进行过滤,,生成用于动态打包的URL的步骤包括:
获取界面特性包;
从所述界面特性包中解析所述界面特性包对应的顶级模块和依赖模块,得
到所有的界面特性包模块;
利用所述界面特性包模块过滤掉所述业务特性包模块;
利用过滤后的模块生成用于动态打包的URL。
5.根据权利要求3所述的方法,其特征在于,所述对所述业务特性包模块
进行排序的步骤包括:
对所述业务特性包所依赖的顶级模块和依赖模块分别设置对应的计数器;
以所述业务特性包所依赖的顶级模块对应的计数器的值为基准,按照依赖
层级将依赖模块对应的计数器逐层累加,分别得到每个依赖模块对应的计数器
的值;
按照计数器的值的大小对所述业务特性包所依赖的顶级模块和依赖模块进
行排序。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
判断JS文件是否被修改;
若是,则根据修改后的JS文件修改JS文件集合;
根据修改后的JS文件集合对临时文件进行更新,并利用更新后的临时文件
对URL资源集合进行更新。
7.根据权利要求6所述的方法,其特征在于,所述根据修改后的JS文件
集合对临时文件进行更新的步骤包括:
根据URL资源集合和修改后的JS文件集合计算所需的线程任务;
将多个线程任务形成队列;
利用所述队列对多个临时文件进行更新。
8.一种动态打包装置,其特征在于,所述装置包括:
接收模块,用于接收浏览器发送的判断JS文件是否...
【专利技术属性】
技术研发人员:荆龙刚,王帅,
申请(专利权)人:金蝶软件中国有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。