动态打包方法和装置制造方法及图纸

技术编号:13135670 阅读:39 留言:0更新日期:2016-04-06 21:45
本发明专利技术涉及一种动态打包方法,所述方法包括:接收浏览器发送的判断JS文件是否被修改的请求,所述请求中携带了JS文件集合和第一标识;根据所述JS文件集合计算所述请求对应的第二标识的值;判断所述第一标识的值与所述第二标识的值是否相等;若否,则进一步判断所述第一标识对应的临时文件是否存在,所述临时文件包括了用于动态打包的URL中的多个JS文件;若所述第一标识对应的临时文件不存在,则利用修改后的JS文件进行合并,得到修改后的临时文件,并将修改后的临时文件返回至所述浏览器。采用本方法能够有效减少网络传输数据量。此外还提供一种动态打包装置。

【技术实现步骤摘要】

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

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

1