zoukankan      html  css  js  c++  java
  • 网站性能优化(一)

    前段时间面试时,面试官问了一个问题:”网站性能优化有什么方法”,我当时的第一反应就是减少图片加载,把图片直接转成base64,然后直接写到css中,这样能减少从后台拿数据的次数,然后我直接说出了我的想法。面试官问还有没有其他方法,我就一脸茫然了。回来之后我赶快看了《高性能网站优化指南》,里面介绍了不少有用的方法,有前端的也有后端,有些我们平时开发的时候一直在用,但是没有觉得能提高网站的性能,有些就从来没有想到过。下面我主要介绍一下这本书里面的前端性能优化方法吧~

    1.减少http请求

    steve在书中说,网站加载时,很大的一部分时间都在加载各种资源,加载一个资源就要发一次http请求,这么多个请求一起发出,服务器端处理这么多请求,性能自然就慢下来了。所以要提高网站性能,自然是要减少http请求的,如何减少http请求,有下面几种方法。

    (1)减少图片资源的http请求

    如果一张图片就要发一次请求,那么网页上图片一多,请求的次数自然就增加了,如果把所有图片集中在一块,然后发送一次请求把所有的图片都拿过来,这样性能不就提高了吗。书中介绍了三种减少方法。

    a.图片地图

    一般一张图片会关联一个超链接。图片地图可以在一个图片上关联多个URL,目标URL的选择取决与用户单击了图片的哪个位置。

    例如,在一个地方有5个图片,单击一个图片可以跳转到相应的链接。这个可以通过5个分开的链接,使用5个分开的图片来实现。也可以通过图片地图来实现,因为5个http请求减少为一个http请求,响应的时间会减少。

    可以通过以下两个例子来体验一下效果:

    无图片地图示例:

    http://stevesouders.com/hpws/imagemap-no.php 

    有图片地图示例:

    http://stevesouders.com/hpws/imagemap.php

    b. css sprites

    css sprites和图片地图类似,只不过会更灵活。图片地图需要将图片按顺序排好在传过来。而css sprites是把多个图片合并到一个的单独的图片中, 就像一个充满小图片的显示板,每个图片都有自己对应的坐标。所以不需要将图片按顺序排好,只需要将图片加进去,然后找到图片对应的坐标就可以找到该图片了。

    css sprites 示例:

    http://stevesouders.com/examples/sprites.php 

    c.内联图片

    内联图片就是我面试是回答的那种方式,将图片转成base64,通过 data: URL嵌在css中,像下面这样:

    <IMG ALT="Red Star" src="data:image/gif;base64,f fBiYvww IvrKy/FvcPews09Wfaj0+w60/ AAsALAAAAAAMAAwÄAAQzcEIZyrYTEHYTugknHd9XGV+qKSYirKkwDYiKDBia tt2HIKBLQRFIJAIKywRgmhwÄ11">

    内联样式示例:

    http://stevesouders.com/examples/inline-css-images.php 

    内联图片示例:

    http://stevesouders.com/examples/inline-images.php 

  • 相关阅读:
    导包路径
    django导入环境变量 Please specify Django project root directory
    替换django的user模型,mysql迁移表报错 django.db.migrations.exceptions.InconsistentMigrationHistory: Migration admin.0001_initial is applied before its dependen cy user.0001_initial on database 'default'.
    解决Chrome调试(debugger)
    check the manual that corresponds to your MySQL server version for the right syntax to use near 'order) values ('徐小波','XuXiaoB','男','1',' at line 1")
    MySQL命令(其三)
    MySQL操作命令(其二)
    MySQL命令(其一)
    [POJ2559]Largest Rectangle in a Histogram (栈)
    [HDU4864]Task (贪心)
  • 原文地址:https://www.cnblogs.com/ycherry/p/7274976.html
Copyright © 2011-2022 走看看