浏览器发起网络请求及优化
来源:互联网 发布:linux 防火墙 编辑:程序博客网 时间:2024/05/16 14:46
当浏览器请求一个URL,服务器会响应一些html
我们需要认识一个新的术语,关键渲染路径,就是浏览器渲染页面的步骤数
一 关建路径的长度
关键渲染路劲的度量标准是路径长度,最理想的关键路径长度是1.。
如果页面包含一些内部样式和js,关键路径发生,有时候虽然关键路径长度没有改变,但是本身HTML大小增加,可能是某些地方受到了影响。
二 关键字节数
用来衡量渲染页面需要传送多少字节数
如果认为不需要外部资源,就大错特错了,外部资源可以被缓存的。
我们使用一个外部CSS文件,一个外部js文件和一个外部带async属性的js文件,
浏览器请求页面,构建dom,发现外部资源后开始下载,css和js有较高的优先级,其他资源次之
如果加上async属性的话,浏览器将用另外一个线程下载它,它处于较低优先级,不会阻塞页面渲染,也不影响关键路径。。
三 关键文件
浏览器渲染页面需要下载的文件总量,HTML文件,CSS文件,就是,,文件算关键文件,async的脚本不算,当然是文件越少越好。。
HTTP1文件限制
http1在同一域名,同一次,允许下载的文件数有大小限制的
更重浏览器请求文件的最大并发数maximum
通过把一些资源存放到影子域名,可以绕过这个限制,已达到最佳优化效果。
不要把关键的css放在根域名之外的其他域名,有些场景下回对DNS查找和延迟起反作用。
HTTP2
如果网站使用了HTTP2,并且用户的浏览器也兼容,则可以完全避开这个下载限制
http2测试网站
TCP往返限制
每一次服务器往返可以传送的最大数据是14kb,包括HTML,CSS 和脚本的网络请求。
如果我们的HTML,或者积累的资源请求超过14kb时候,需要多做一次服务器往返。
我们整个HTML页面可以很好的压缩,Gzip可以压缩到2kb,远远低于14kB,因此一次服务器返回就能搞定。
浏览器网络优化策略
先来篇文章理解网络资源
鉴别性能问题点击打开链接
充分使用chrome开发者工具,以及network标签下模拟地宽带的情形,从而获取有价值的信息
合并资源和文件
基本上,每接收到一个外部CSS和js文件,浏览器都会构建cssom,执行脚本,尽管几个文件可以再一次往返中传送,但是也浪费了浏览器的宝贵资源和时间,最好还是合并文件,减少不必要的加载。
首屏内容使用外部样式
内部CSS和js不需要请求外部资源,相反,外部资源又可以被缓存,并保持DOM轻量,两者并没有非黑即白。
但是首屏关键内容使用内部样式,可以避免请求额外的外部的资源,节省时间做最有意义的渲染。
1 最小化/压缩图片
2 延迟加载图片
3 异步加载字体
4 是否真正需要js/css
原声HTML元素可以实现的行为是否用了脚本?是否有样式或者图标可以行内创建的,不需要内部/外部资源?
cdn
可以利用cdn存储数据,它会从用户最近的,延迟最低的位置分发到用户设备,加载时间更块。
google传送门
高性能网站传送门
- 浏览器发起网络请求及优化
- Volley发起网络请求及Gson
- okHttp发起网络请求
- 用javascript模拟用户发起浏览器请求
- 使用NSURLSession发起HTTPS网络请求
- iOS中发起https的网络请求
- WEB请求处理(1):浏览器请求发起处理
- php curl_multi 优化网络请求及多线程
- java 伪装成浏览器向 网站发起请求
- iPhone微信浏览器中jQuery发起post请求无效
- 客户端浏览器向服务器发起http请求的全过程
- Linux网络协议栈 -- socket connect 发起连接请求
- 使用DefaultHttpClient发起网络请求遇到的问题
- 微信小程序API之网络(一)发起请求
- 安卓网络操作全解:发起请求,解析响应
- Go发起Http请求及获取相关参数
- 优化网络请求
- WEB请求处理一:浏览器请求发起处理 --> 陶邦仁 又发现一牛人
- Java知识点1
- 安卓开发:TabHost 选项卡的基本用法
- oracle表空间容量查询
- windows垃圾清理脚本
- xml复习
- 浏览器发起网络请求及优化
- Unity 中的 Mesh 及绘制圆环
- Android实现控制第三方音乐播放器暂停/播放
- Perfect Number
- 解决动态生成的网页在微信浏览器中每次返回都会重新生成的问题
- Java-JDBC调用批处理、存储过程、事务
- dagger2使用入门详解(一)
- 系统吞吐量几个重要参数:QPS(TPS)、并发数、响应时间
- C++作业六