网站前端性能优化减少HTTP请求数

 减少HTTP请求数对seo/seo.html" target="_blank">网站优化来说是非常重要的,过多的HTTP请求不仅会让用户等待时间变长,而且还会加重服务器的负担。减少HTTP请求主要有以下技术手段。
    ①图片映射,利用HTML的Map标签将一张图片对应不同链接。
    ②CSS sprite,国内又叫CSS精灵,或者融图。是将若干个图片融到一张大图中,以减少HTTP请求。
    ③静态资源合并,将css和javascript等静态资源合并到一个文件并进行压缩。
    ④静态资源缓存,用户访问一次后不再请求静态资源

1.图片映射
    图片映射,就是HTML的热图,指带有可点击区域的一张图片。如下所示代码(来自w3school),将一幅图分割成三个不同的点击区域。

<img src="planets.jpg" border="0" usemap="#planetmap" alt="Planets" />
<map name="planetmap" id="planetmap">
  <area shape="circle" coords="180,139,14" href ="venus.html" alt="Venus" />
  <area shape="circle" coords="129,161,10" href ="mercur.html" alt="Mercury" />
  <area shape="rect" coords="0,0,110,260" href ="sun.html" alt="Sun" />
</map>

    图片映射的好处显而易见,如果不适用图片映射的话,你至少得切割成三张图,浏览器分三次请求。

2.CSS sprite
    CSS sprite又叫css精灵,是将多张小图融合到一张大图,从而减少HTTP请求数量的方式,比如最常见的各种分享按钮(新浪微博、QQ空间、腾讯微博、人人网等),如果每个按钮都是一张单独的图片,那十几个SNS网站就得十几个小图标,而如果采用CSS sprite,则可以将这十几个图标融为一张图,仅需一次网络请求。这是CSS sprite最明显的好处。
    CSS sprite的原理是利用CSS的background-image、background-repeat、background-position这几个属性的组合进行背景定位,background-position可以用x、y值精确的定位出背景图片的位置。

3.静态资源合并压缩
    通常情况下我们会写很多css和js代码,而为了便于维护我们可能会将不同的功能模块写入不同的css/js文件,在发布之前我们可以将这些文件合并成一个css或js文件,并对这个文件压缩,这样浏览器请求只需要一次即可加载完所有的css/js文件。当然如果这些文件应用场景差异很大,你也就没必要将他们合并到一个文件。
    合并压缩你可以使用Yahoo的YUI compressor或者Google的Closure Compiler。

4.对静态资源文件进行缓存
    这个好处显而易见,就不用多说了,最好对静态资源采用不同的域名和HTTP服务器,并且对静态资源设置浏览器缓存为永久(足够长时间,比如淘宝图片CDN就是10年过期),设置方法为给HTTP头设置过期时间,比如nginx服务器可以这样设置:

location ~* .(ico|gif|bmp|jpg|jpeg|png|swf|js|css|mp3) {            
root    /data/www/static;            
expires max;
}

    当然,设置静态资源过期也要根据自身的情况,我一般的做法是全部设置为永久缓存。然后每次更新图片或动画都不会用原路径,而是重新生成新的路径。每次css和js更新后加入时间戳,比如http://xxcdn.cn/xx/xx/xx.js?t=20131209

先看百度实例,打开百度我们查看源码 大家会发现所有的css,js都写在了一个页面,如果我们使用站长工具查会发现百度图片,js缓存是永久的了,这个大家会明白为什么吗,还有我们发现在图片中百度这样定了

js代码如下全写在一起了

<script>setTimeout(function(){var s = document.createElement("script");s.charset="utf-8";s.src="http://s1.bdstatic.com/r/www/cache/static/global/js/popup_a3186328.js";document.body.appendChild(s);},0);</script></html><script>(function(){var C=G("lm").getElementsByTagName("A");for(var B=0,A=C.length;B<A;B++){var D=C[B];addEV(D,"mousedown",(function(E,F){return .....(window);</script>

在css中也发现全写在了页面中了并且重点是图片直接如下

background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAMAAACuX0YVAAAABlBMVEVnpv85i/9PO5r4AAAAD0lEQVR42gEEAPv/AAAAAQAFAAIros7PAAAAAElFTkSuQmCC);

这个我们放在html会发现是一张图片了,这也是一种办法了。

时间: 2024-11-13 06:38:20

网站前端性能优化减少HTTP请求数的相关文章

网站前端性能优化总结

一.服务器侧优化 1. 添加 Expires 或 Cache-Control 信息头 某些经常使用到.并且不会经常做改动的图片(banner.logo等等).静态文件(登录首页.说明文档等)可以设置较长的有效期(expiration date),这些HTTP头向客户端表明了文档的有效性和持久性.如果有缓存,文档就可以从缓存(除已经过期)而不是从服务器读取.接着,客户端考察缓存中的副本,看看是否过期或者失效,以决定是否必须从服务器获得更新. 各个容器都有针对的方案,,以 Apache 为例: Ex

丰趣海淘:跨境电商平台的前端性能优化实践

原文出自[听云技术博客]:http://blog.tingyun.com/web/article/detail/586 随着互联网的发展,尤其是在2000年之后浏览器技术渐渐成熟,Web产品也越来越丰富,这时我们被浏览器窗口内的丰富"内容"所吸引,关注HTML/CSS,深入研究Dom.Bom和浏览器的渲染机制等,接触JavaScript库,"前端"这个职业,由此而生. 前端技术在这10多年中飞速发展,到了今天,我们可能发现"内容"的美在视觉上是有

5173首页前端性能优化实践

从制定计划,到前后端的开发,最后到测试以及上线,历时4个月,5173首页前端性能优化项目终于顺利上线,并达到了预期的性能优化目标.这次的项目并不是改版,而是原来首页的设计和功能不变,只做重构和优化.虽然项目名叫前端的性能优化,但也并不仅仅是前端单方面的工作,要想彻底的把优化做好,就需要前后端的通力配合. 历史背景 老首页应该是09年上线的,首页也是各部门争夺资源的地方,大家都想在首页有一席之地,各部门在首页都有各自的小豆腐块,如果有新项目的上线,大多是打补丁的方式,并且唯一的规范就是能保证功能正

用前端性能优化解决方案弥补CDN的不足

"我已经使用了内容交付网络(Content Delivery Networks, CDN),为什么还需要前端性能优化(Web Performance Optimization,WPO)解决方案呢?"这是用户咨询最多的问题之一.要想了解前端WPO如何弥补CDN的不足,并最终为网页或企业应用提供显著的加速效果,你就必须了解这两个解决方案各自所能解决的不同问题.CDN可以解决的性能问题虽然内容交付网络(CDN)为全球用户改善了网络的可用性和节省了带宽,但CDN解决的主要问题还是延迟.延迟就是

WEB前端性能优化:HTML,CSS,JS和服务器端优化

文章描述:WEB前端性能优化小结. 对前端开发工程师来说,前端性能优化的重要性是不言而喻的,最为大家所知的是YSLOW的23条优化规则,在我的理解中,性能优化不纯粹是指用户访问网站的速度,也包括开发的效率,这里我总结下我理解中的WEB前端性能优化. HTML部分 语义化HTML:好处在于可以使代码简洁清晰,支持不同设备,利于搜索引擎,便于团队开发: 减少DOM节点:加速页面渲染: 给图片加上正确的宽高值:这可以减少页面重绘,同时防止图片缩放: 防止src属性和link的href属性为空:当值为空

Web前端性能优化全攻略

Web 前端性能优化是个大话题,是个值得运维人员持续跟踪的话题,是被很多网站无情忽视的技术. Web 前端优化最佳实践之 内容篇Web 前端优化最佳实践之 Server 篇Web 前端优化最佳实践之 Cookie 篇Web 前端优化最佳实践之 CSS 篇Web 前端优化最佳实践之 JavaScript 篇Web 前端优化最佳实践之 图象篇Web 前端优化最佳实践之 Mobile(iPhone) 篇 Yahoo! 的 Exceptional Performance team 在 Web 前端方面作

移动HTML 5前端性能优化指南

  前端工程师的菜!最近移动Html 5越来越火,想有一个体验流畅的Html 5 应用,这篇优化指南就别放过咯.腾讯的同学将关键的注意点与优化方法都总结出来,全文高能干货,非常值得深度学习 >>> 概述 PC优化手段在Mobile侧同样适用 在Mobile侧我们提出三秒种渲染完成首屏指标 基于第二点,首屏加载3秒完成或使用Loading 基于联通3G网络平均338KB/s(2.71Mb/s),所以首屏资源不应超过1014KB Mobile侧因手机配置原因,除加载外渲染速度也是优化重点 基

Web前端性能优化教程:精简JS 移除重复脚本

本文是Web前端性能优化系列文章中的第七篇,主要讲述内容:精简Javascript代码,以及移出重复脚本.完整教程可查看:Web前端性能优化 一.精简javascript 基础知识 精简:从javascript代码中移除所有的注释以及不必要的空白字符(空格,换行和制表符),减少javascript文件的大小. 混淆:和精简一样,会从javascript代码中移除注释和空白,另外也会改写代码.作为改写的一部分,函数和变量的名字将被转换为更短的字符串,所以进一步减少了javascript文件的大小.

CSS3与页面布局学习总结(八)——浏览器兼容与前端性能优化

一.浏览器兼容 1.1.概要 世界上没有任何一个浏览器是一样的,同样的代码在不一样的浏览器上运行就存在兼容性问题.不同浏览器其内核亦不尽相同,相同内核的版本不同,相同版本的内核浏览器品牌不一样,各种运行平台还存在差异.屏幕分辨率不一样,大小不一样,比例不一样.兼容性主要考虑三方面: 1).CSS兼容2).JavaScript兼容3).HTML兼容 这三类也是前端的主要组成部分,都存在一定的兼容性问题,知己知彼,百战百胜,我们先了解浏览器的发动机-内核. 多年前我们一直为IE6兼容烦恼,为它没少加