前端性能分析
浏览器存储
浏览器是由多种存储方式的,如何选择他们呢?前端
cookie

- 由于HTTP请求无状态,因此须要cookie去维持客户端状态
- 过时时间 expire
- cookie的生成方式
- http response header中的set-cookie
- js中能够经过document.cookie能够读写cookie
- 仅仅做为浏览器存储(大小4KB左右,能力被localstorage替代)
- cookie中在相关域名下面 —— cdn的流量损耗
- httponly
localstorage
= HTML5设计出来专门用于浏览器存储的chrome
- 大小为5M左右
- 仅在客户端使用,不和服务端进行通讯
- 接口封装较好
- 浏览器本地缓存方案
sessionstorage
- 会话级别的浏览器存储
- 大小为5M左右
- 仅在客户端使用,不和服务端进行通讯
- 接口封装较好
- 对于表单信息的维护
IndexDB
- IndexedDB 是一种低级API,用于客户端存储大量结构化数据。该API使用索引来实现对该数据的高性能搜索。虽然 Web Storage 对于存储较少许的数据颇有用,但对于存储更大量的结构化数据来讲,这种方法不太有用。IndexedDB提供了一个解决方案。
- 为应用建立离线版本
PWA
PWA (Progressive Web Apps) 是一种 Web App 新模型,并非具体指某一种前沿的技术或者某一个单一的知识点,咱们从英文缩写来看就能看出来,这是一个渐进式的 Web App,是经过一系列新的 Web 特性,配合优秀的 UI 交互设计,逐步的加强 Web App 的用户体验。编程
- 可靠:在没有网络的环境中也能提供基本的页面访问,而不会出现“未链接到互联网”的页面。
- 快速:针对网页渲染及网络数据访问有较好优化。
- 融入(Engaging):应用能够被增长到手机桌面,而且和普通应用同样有全屏、推送等特性。
可使用Chrome浏览器的lighthouse来查看网站有关PWD的支持状况浏览器
Service Worker
Service Worker 是一个脚本,浏览器独立于当前网页,将其在后台运行,为实现一些不依赖页面或者用户交互的特性打开了一扇大门。在将来这些特性将包括推送消息,背景后台同步, geofencing(地理围栏定位),但它将推出的第一个首要特性,就是拦截和处理网络请求的能力,包括以编程方式来管理被缓存的响应。缓存
Service Worker生命周期
cookie
两条Chrome跟Service Worker有关的命令网络
chrome://serviceworker-internals/
chrome://inspect/#service-workers