• web性能优化--减少客户端请求数(一)


    • 多图标合并,用css分隔
    • 设置较长时间的过期时间
    • 合并多个css文件
    • 合并多个js文件
    • 根据域名划分内容

    首先介绍一款速度测试工具:webpagetest(填上url,username,password就开始测试了)

    这就是测试结果了

    也可以通过时间帧去测试网页速度,推荐工具:ScreenerToGif

    首先先来了解下浏览器渲染步骤:

    1.首先浏览器解析HTML标记去构造DOM树

    2.然后解析css去构造CSSOM树

    3.再将DOM和CSSOM树结合渲染树之前,JS文件被解析和执行

    那么就存在阻塞渲染了,css阻塞渲染,js阻塞渲染

    1.解决css阻塞渲染

      将关键css内嵌到页面中,将最重要的(首次加载时可见的部分页面所使用到的)style写入到head中的<style></style>里

      样式数据放在顶部

    2.解决js阻塞渲染

      在<script></script>标签中使用async或者defer特性。

        async:将会在html解析时下载该文件并在下载完成后立马执行

        defer:将会在HTML解析时下载该文件并在HTML解析完成后执行

      将js放在底部

    3.设置较长时间的过期时间

      对于不经常变化的css可以设置较长的过期时间

    4.多图标合并,用css分隔

      通过css sprites来整合图像

        如果页面中有6个小图像,那么浏览器在显示时会分别下载,这时可以通过css sprites将这些图片合并成一个,可以减少页面加载所需时间

    5.合并多个css/js文件,减少请求http耗时

    6.根据域名划分内容

      浏览器一般对于同一个域的下载连接数有所限制,根据域名划分下载内容可以增大浏览器并行下载连接,但是注意控制域名使用在2-4个之间,不然dns查询也是个问题。一般网站规划会将静态资源放在static.exapmle.com,动态内容放在www.example.com上。好处是可以避免在静态域名上使用cookie

    本文参考:高性能网站建设

  • 相关阅读:
    HTML DOM-->内部样式表与外部样式表的读写
    HTML DOM-->行间样式表的读写
    HTML DOM-->获取文本节点
    HTML DOM-->获取属性节点
    HTML DOM-->获取标签(元素)节点
    HTML DOM-->简介
    JS 浏览器BOM-->setTimeout() 方法
    JS 浏览器BOM-->clearInterval() 方法
    JS 浏览器BOM-->setInterval() 方法
    JS 浏览器BOM-->onresize方法
  • 原文地址:https://www.cnblogs.com/thonrt/p/6588940.html
Copyright © 2020-2023  润新知