浅谈前端性能优化(五)——减少HTTP请求数

我会带着你远行 2022-06-15 21:07 313阅读 0赞

1、图片地图

图片地图允许在一个图片上关联多个URL,目标URL取决于用户单击的图片上的位置。

1) 优点:

把多张图片整合到一张图片中,虽然文件的总体大小不变,但可以减少HTTP请求数。

2) 使用条件:

只有在图片的所有组成部分在页面中是紧挨在一起时才能使用,如导航栏。

3) 缺点:

确定图片的坐标比较繁琐且易出错,同时使用图片地图导航也不具有可读性,因此不推荐使用图片地图。

4) 实例:

导航往往使用多个分开的图片,让每个图片对应一个超链接,这会产生多个HTTP请求。

图片地图将多个图片合并为一张图片,以位置定位超链接,把HTTP请求减少为一个。

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title></title>
  5. </head>
  6. <body>
  7. <img src="images/img.jpg" usemap="#myMap"/>
  8. <map name="myMap">
  9. <area shape="rect" coords="50,50,100,100" href="#" οnclick="return show('Rect!')">
  10. <area shape="circle" coords="240,240,40" href="#" οnclick="return show('Circle!')">
  11. </map>
  12. <script>
  13. function show(shape){
  14. alert(shape);
  15. return false;
  16. }
  17. </script>
  18. </body>
  19. </html>

2、CSS Sprites

CSS Sprites,CSS精灵,合并图片,通过指定CSS的backgroud-image和backgroud-position来显示元素。

工具:CSS Sprite Generator,可以合并图片,还可以生成图片的CSS样式。

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title></title>
  5. <style>
  6. .last{ background-image:url(images/img.png); background-position:0px 0px; width:20px; height:20px; }
  7. .next{ background-image:url(images/img.png); background-position:-20px 0px; width:20px; height:20px; }
  8. .last:hover{ background-position:0px -20px; }
  9. .next:hover{ background-position:-20px -20px; }
  10. </style>
  11. </head>
  12. <body>
  13. <div>
  14. <div class="last"></div>
  15. <div class="next"></div>
  16. </div>
  17. </body>
  18. </html>

3、合并JS脚本和CSS样式表

适当地把多个JS脚本合并为一个脚本,把多个CSS样式表合并为一个样式表。

4、使用外部JS和CSS文件

在用户不带缓存访问页面的时候,内联所有的js和css的效率更快,原因是外置js和css带来额外的http请求开销,1个http请求相对于3个http请求要更快一些。

其实,使用外部JS和CSS文件会产生更快的访问速度,这是由于外部JS和CSS文件能被浏览器缓存,当下次再请求相同的JS和CSS时,浏览器将不会再发出HTTP请求,而是使用缓存的JS和CSS文件,减少了HTTP请求数。

发表评论

表情:
评论列表 (有 0 条评论,313人围观)

还没有评论,来说两句吧...

相关阅读

    相关 App性能优化

    前言 前段时间给公司的小伙伴们进行了关于app性能优化的技术分享,这里我稍微整理一下也给大家分享一下,关于性能优化这个话题很大,涉及面可以很广,也可以很深入,本人能力有限

    相关 前端性能优化

    1、什么是前端性能优化? 从用户访问资源到资源完整展现在用户面前的过程中,通过技术手段和优化策略,缩短每个步骤的处理时间从而提升整个资源的访问和呈现速度。   2、为什么

    相关 网站性能前端性能优化

    > 最近项目慢慢走上正轨,需求趋于平稳,这才想起需要对整站进行性能优化。经过一段时间的学习,结合现在项目的实际性能情况,发现确实有许多地方可以进行优化。于是就开始了我的前端性能