优化Web页面打开速度的几点建议

如何使网站的打开速度变快,畅享丝滑般柔顺!
0. 全站加速CDN
用户直接访问远距离的地域的服务时,网络上需要经过大量的中间节点,而中间节点是不可控又不可靠的,通过全站加速让用户访问最近的CDN节点,静态资源可以通过CDN节点直接回源,动态则请求通过云产商核心网络内进行回源代理给用户,这将提高动态请求的稳定性及速度。

1. 减少Cookie传输及缓存
一般在主域名下的HTTP请求里都会携带大量Cookie信息,最大4KB,每个域名下最多50条;但如果仅仅访问js/css/jpeg等静态资源文件的话是不需要Cookie信息,所以可以将整个站点的静态资源放到一个专门的域名下,以求减小网络开销,也就是Cookie free domain;

2. 多域名存储资源
浏览器在对同一个域名下的并发请求资源数量是有上限的(IE为8个,chrome为4-6个),一个完整的html页面需要加载的资源一般已经超过100个,所以为了缩短加载速度可以将下载资源分布在多个域名下(也不能太多,DNS查询也需要耗时);这样不仅可以增加资源加载的并发数,还可以实现静态资源Cookie Free加载;

3.合并HTTP请求
加速网页加载不仅需要加快单个请求速度的同时,还需要减少总的请求个数,css spirites可以将多张图片合并成一张图片,这样只需要一次请求,不同css展示图片上不同的位置;通过使用smartspirites命令在打包的时候讲图片合并成一张图片;

4.压缩请求资源 
将js/css进行concat, minify和compress,最终合并成一个大的js/css,然后使用gzip生成.gz格式的文件,只要在request里指定accept-encoding=gzip,deflate,则可以请求打包之后的.gz文件,极大降低http请求的个数和带宽的负载压力。基于Ant的构建打包里js/css的合并、混淆和压缩可以通过concat, closure实现,而gzip则需要client browser和web server同时约定一些规定。首先client browser发送的request要写明accept-encoding=gzip,deflate,表示可以接受gzip的文件编码;然后web server将js/css文件打包成跟源文件具有同样名字路径的gz后缀文件,并且在response里写明content-encoding=gzip,这样web server响应请求的时候就可以返回gz文件,web browser也可以正确对gz文件进行解析。

5.使用静态页面 
将内容变动频次低的页面做成静态页面(相对于JSP等内容需要实时生成的动态页面),并缓存到web server内存或者CDN上,常见的技术有freemarker;JSP页面需要依赖app server提供的容器环境,而freemarker可以完全脱离app server(Jetty),简单的web server(Nginx)就可以满足访问需求。https://freemarker.apache.org/ 直接使用freemarker合并ftl文件和data,并生成html文件,html文件可以直接放置到CDN或者web server上供用户访问。

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
Carry Yip
Carry Yip

Technical Director

1 篇文章

作家榜 »

  1. 58沈剑 220 文章
  2. 奈学教育 57 文章
  3. 江帅帅 | 奈学教育 18 文章
  4. nxadmin 2 文章
  5. Carry Yip 1 文章
  6. 悅悅酱的小时候 1 文章
  7. Osheep 1 文章
  8. naguang 0 文章