在开发Java web工程中,必定需要使用的JavaScript与css,很多时候,一个页面需要引入多个JavaScript或者css文件,一般情况下,浏览器会向服务器发送多次请求去获取这些静态资源文件,因而会有多次3次握手,请求时间就有所增长。如果将要请求的多个js文件在服务端合并成一个,那么就实现了一次请求就获取到了所有需要的js文件内容。即在获取相同文件容量情况下,减少了不必要的3次握手时间。Apache(mod_concatx)与tengine(ngx_http_concat_module)也提供了此功能。
如果工程是基于spring boot框架的话,可以使用我编写的一个扩展小工具(spring-boot-starter-js-css)即可。
原理是,在工程启动时,将js、css分别扫描并加载到内存,接收到请求,根据参数获取对应的文件,并合并成一个文件流,返回给前端请求者。
项目主页(工具最新信息请移步于此):https://gitee.com/hm-tools/hm-tools-js-css
本工具项目是开源的,大家可以下载源码学习使用,主要流程思路很简单,根据请求参数读取指定的多个JS文件,然后合并成一个数据流返回给前端。稍微有技术含量的是本工具能够自动识别读取文件的字符编码(GBK,UTF-8),即指定的资源目录下可以同时存在多种字符编码