特别是在手机端访问,用户第一次打开网站,如果得到反馈的时间太久,用户很可能在页面完成加载之前就离开,不会再次访问。所以,网站、web App,提高首次访问的加载速度就显得特别重要了。第一次加载速度是用"首字节的时间"测量的,即从用户点击访问到从服务器返回第一个字节所用的时间,绝大多数情况下,真正的原因在于前端,PageSpeed YSlow和其他无数的工具和服务用来解决这些问题。

浏览器是如何加载页面的

解析域名à发起请求à下载响应à渲染页面

当浏览器要渲染页面的时候,如果页面中有CSS或脚本外链,浏览器会等到这些文件加载和解析完再渲染页面。

为什么页面会加载缓慢

以下是可能的原因

HTTP连接数à接连不断请求很多次小文件比一次请求一个大文件慢很多,即使现代浏览器已经支持并行下载,但是每次请求还是需要承担HTTP层面的开销,创建新请求不仅需要新的开销,还需要耗费CPU和内存,所以,并行下载两个文件的时间并不等于串行下载时速度的两倍。而对于较大文件,比如一些比较大的图片,情况有些不同,因为这个时候,下载占据了请求时间的绝大部分,所以,并行下载的效果会更好。出于这个原因,在网站上将图片与其他资源置于不同的域下是合理的,雅虎的Steve Souders和YSlow团队发现,为当前域创建两个别名,能允许更多的下载并行,会使大文件下载的性能明显改善。使用至少两个最多五个域名是YSlow的经验法则。

另一个需要考虑的是浏览器的cookie,如果一个cookie与请求的域名或路径相匹配,它会伴随着每次请求发送(上传),所以,如果你的域名下有几千字节的cookie,那么此后发送到这个域的每次请求都将把这些字节包含在请求头里,然后发送(这些字节还是未压缩状态)。服务器在读取请求体之前读取这些cookie。cookie可以把一个很小的请求变得很大。

总的字节数à这个原因是显而易见的,被下载的资源的大小

等待时的渲染阻塞à有时候,并不是真的提升性能,但是有一些小技巧,可以让用户觉得网页加载的很快。例如,不管什么时候,给用户一个及时的反馈,让用户知道页面在加载,链接还在,没有断开。

延迟à一个典型的家庭网络链接可能有15ms的网络延迟,一个典型的3G链接有100ms的延迟,3G网络与家庭网络相比,不但下载速度慢了很多,延时也高很多。

缓存能力差à正确的缓存设置,确保浏览器最终不会重复获取已有的资源,是解决这个问题的关键。

PageSpeed为解决页面加载性能问题,提出六个基本规则

  1. 缓存优化:使页面应用的逻辑实现和所需数据一并离线保存
  2. 往返时间最小化:减少请求响应的周期次数
  3. 请求开销最小化:减少上传数据包大小
  4. 有效负载最小化:减少响应包、下载包和缓存页面的大小
  5. 浏览器渲染优化:改进浏览器的页面布局
  6. 移动设备优化:为移动网络和移动设备调整网站

目前移动类别包含两条建议:延迟JavaScript解析和使首页的重定向可缓存

除此以外,在实际工作中,我们还会遇到一些细节问题

  1. 为所有尺寸的浏览器使用同一个高分辨率的图像可以大大减少工作量,但是用户却不但要为此买单(流量费用),还要忍受这种下载性能下降的局面。如果不能合理的生成每一种尺寸的图像,也许选择一种折中的,大多数设备上用得到的尺寸,算是一种优化。
  2. 针对不同设备,为了有更合适的布局,我们会采用媒体查询来解决这个问题

    <link rel="stylesheet" media="only screen and (max-width: 800px)" href=""table.css">

    但如果将媒体布局置于css文件内部,把不同布局的代码合并到一个文件中,一次来减少http请求的次数

    @media only screen and (max-width: 800) {}

转载于:https://www.cnblogs.com/1000px/p/4720040.html

提高网站第一次加载速度相关推荐

  1. 网站的加载速度该如何进行优化提升?

    根据调查结果显示,用户一般在进行访问网站的时候最多会在加载的网页停留30-50秒,没有耐心时会直接关掉网页,这样就会提高网站的跳出率,不利于搜索引擎对网站的优化.由此可见,网站的加载速度在网站优化中也 ...

  2. 一个大图切成几个小图加载速度更快_CSS精灵图技术(提高页面的加载速度)

    未来2088 2019-11-28 18:00:00 哈喽大家好,我是作者"未来",本期分享的内容是Web前端系列课程,本系列总共29个阶段,坚持学习3个月蜕变为Web前端高手哦! ...

  3. 提高页面的加载速度的方法——精灵图和字体图标

    1. 精灵图 1.1 为什么需要精灵图 一个网页中往往会应用很多小的背景图像作为修饰,当网页中的图像过多时,服务器就会频繁地接收和发送请求图片,造成服务器请求压力过大,这将大大降低页面的加载速度. 为 ...

  4. 怎样提高图片的加载速度?

    各位大佬,我想请教一下,再不改变服务器带宽的情况下,资源代下载从技术上如何提高图片的加载速度呀. 硬件是上限,你最多做静态分离,CDN,专门的事情丢给专门的工具来做. 哦哦哦,请问下2M的带宽,加载3 ...

  5. 如何优化网站页面提高网页的加载速度

    网站要想加载快无非就是减少http请求次数,下面说一下具体做法: 1:字符集声明 如果<head>部分未定义字符集,将增加页面渲染次数,速度减慢. 2:Meta信息完善程度 建议网站met ...

  6. 网站加载速度 优化_您肯定要优化网站的加载速度。 这是如何做。

    网站加载速度 优化 Do you remember this iconic scene from a very famous Star Wars Parody? 您还记得著名的<星球大战> ...

  7. 浅析网站页面加载速度如何提升?

    在当下的互联网时代中,很多人们天都离不开网络,通过浏览网页来获取信息和知识,但在用户打开网站页面时并不是每个网站的开启速度都是那么快的,有的网页就是太慢导致用户的流失,转向其他同类型的网站.那么我们应 ...

  8. 运维实践-使用WebP Server Go无缝转换图片为Google的webp格式让你网站访问加载速度飞起来...

    关注「WeiyiGeek」公众号 设为「特别关注」每天带你玩转网络安全运维.应用开发.物联网IOT学习! 本章目录: 0x00 快速入门 WebP 介绍 Webp-Server 介绍 0x01 安装实 ...

  9. 如何提高网站的页面加载速度

    英文 | https://javascript.plainenglish.io/how-to-improve-your-websites-page-load-speed-8fa81caf3ed2 翻译 ...

最新文章

  1. 关于lingo的@wrap函数
  2. DeeoID:Deep learning face representation from predicting 10,000 classes
  3. 从fig文件中读取数据
  4. GitHub 4.6 万星:Windows Terminal 预览版开放下载!
  5. 王朔《我的千岁寒》:可以看却无法看到
  6. Java BigDecimal Rounding Mode
  7. Python保存dict字典类型数据到Mysql,并自动创建表与列
  8. M1 Macbook安装MATLAB
  9. 用图片替代cursor光标样式
  10. 【ROS】ubuntu20.04+ROS安装上遇到的坑(主要是time out)
  11. IIS 配置网站出现500内部服务器错误,显示具体错误信息
  12. DMU-单性状重复力模型-学习笔记3
  13. 西岸风格合成器-Eventide Newfangled Audio Generate 1.2.1 WiN
  14. 工商名人堂 爱德华·约翰逊二世---富达基金的崛起(转载自新浪)
  15. Vb下调用Help文件 (转)
  16. SpringBoot:Sa-Token的具体介绍与使用
  17. 微信小程序css篇----背景(Background)与颜色(Color)
  18. 海信智慧黑板Android版本,海信智慧黑板,给老师减负,再也不用“喝”粉笔末了...
  19. Spring Cloud Stream Rabbit 3.1.3 入门实践
  20. 微机原理复试面试(一)

热门文章

  1. powershell自动化操作AD域、Exchange邮箱系列(1)——powershell 简介
  2. nmap 扫描工具 使用方法
  3. 通向财务自由之路02_成功的决定因素:你
  4. ubuntu18下pyspider的安装
  5. android 安卓 pc 电脑 通讯,安卓利用Socket和PC通信无法连接?
  6. 刘宏伟计算机组成,哈工大组成原理和数据结构 ppt 计算机组成原理刘宏伟 版本一 第18讲...
  7. pycharm创建django项目界面解释
  8. 直接访问 可以拿到cookie 本地起的服务拿不到 cookie_微服务下的分布式session管理...
  9. 石河子大学计算机类学什么,石河子大学有哪些专业好,2021年石河子大学各专业排名...
  10. nvidia的jetson系列的方案_NVIDIAJetson系统在工业网络中的集成