Skip to content

xiaoji121/mod_styleCombine

 
 

Repository files navigation

style动态版本管理和请求合并 
 
目标:
 
提升前端页面性能。减少客户端与服务端的网络交互,同时保证数据及时更新。充分利用浏览器端缓存机制。
 
主要解决的问题:
1、  将页面上的多个js/css请求动态地合并成一次请求,发送给服务端。服务端将所要的内容返回给浏览器。同时在浏览器端的缓存过期时间为不过期,可以重复利用。
2、  动态的js/css版本管理,每个js/css都会动态地带上版本号,一旦js/css有修改版本号会重新生成,然后更新页面上的js/css版本号,使浏览器发送新的请求到服务端拿最新的js/css。整个流程实现动态控制。
功能概要:

动态合并请求

1、web应用添加apache模块,将多个url通过特定符号进行合并成一个url。
2、同时给每个合并好的url都动态地生成一个版本号,如果其中某个文件有变化,则版本将会更新。
最后将处理后的html返回给浏览器端,由浏览器解析并发起style的请求。
版本号的主要目的是,用于表示一个新的地址,让浏览器再次发起请求新的资源;(缓存策略见“获取style内容“)


获取style内容

style 集群,部署一个用于解析特定规则的URL,如上图样式的URL。把多个以符号拼接的URL拆开成
单独的文件名。把多个文件名的内容合并成一个文件,并返回给客户端。
返回时设置HTTP头信息 expire=10 years; last_modified=mtime; 几个值,用于客户端浏览器长时间缓存。


大概思路
1、ops 发布js/css到style集群中,同时也发布到版本中心,版本中心会自动生成版本索引文件。

2、apache 模块会定时去读取版本中心的索引文件,用于提供页面合并URL的时候生成版本号。一旦有js更新则会生成新版本号。

3、用户浏览器拿到处理过的html代码,解析并发起js/css 资源请求。从style集群获取数据。

4、style集群收到请求后把URL需要的文件数据返回给客户端,并设置过期时间。

About

styleCombine framework

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 82.7%
  • Java 17.0%
  • Shell 0.3%