【转】前端缓存介绍

1 篇文章 0 订阅
1 篇文章 0 订阅

目录

1、一次网页浏览的过程
2、DNS,HTTP,Cookie缓存
3、HTTP缓存
4、HTML5中的缓存

1、一次网页浏览的过程

这里写图片描述

2、DNS解析

Domain Name Service
将域名转换为网络上的实际ip地址
这里写图片描述

浏览器DNS缓存

Chrome 为例:1000条,70s
chrome://net-internals/#dns
这里写图片描述

缓存失效

缓存条数超过上限

  • 列表内容
  • 超时
  • 手动清空
  • 重启浏览器
系统DNS缓存

查看:ipconfig /displaydns
缓存时间: MaxCacheEntryTtlLimit TTL
缓存失效:ipconfig /flushdns 或 修改host
这里写图片描述

3、HTTP缓存
  • 不缓存
  • 强缓存
  • 协商缓存
不缓存

浏览器每次发送接收一个完整的请求
适用于动态页面或接口

强缓存

不发送网络请求直接从缓存读取文件
适用于不常变化的静态文件
这里写图片描述

协商缓存

浏览器询问服务器本地缓存是否有更新
这里写图片描述

HTTP 1.0 协议

Expire:Mon, 27 Jun 2016 03:37:44 GMT
Last-Modified:Fri, 17 Jun 2016 07:32:46 GMT
这里写图片描述
If-Modified-Since:Fri, 17 Jun 2016 07:32:46 GMT
这里写图片描述

HTTP 1.1 协议

Cache-control:

  • max-age =604800
  • no-cache
  • no-store
    这里写图片描述
    ETag/If-None-Match
    这里写图片描述
    这里写图片描述

存储在浏览器的一段文本
会附到http请求中发送
JS可以对cookie读写
这里写图片描述
cookie的属性
Expires
Domain
Path
Secure
HttpOnly
这里写图片描述
Cookie的缺点
4K限制
Domain污染
HTTP头中无用信息增加
Cookie信息泄露

UserData

仅IE支持
XML文件存储

4、HTML5中的缓存

Application Cache
Localstorage & Sessionstorage
WebSQL
IndexedDB

Application Cache

缓存页面和页面内指定的静态资源,使其在无网络情况下也可以正常运行。

如何使用

定义一个缓存清单文件
在页面里指定清单文件
这里写图片描述
这里写图片描述
这里写图片描述

如何更新

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

与HTTP缓存的区别

这里写图片描述

Localstorage & Sessionstorage

Key-value形式存储
每个域名下可以存储5M内容
Localstorage永不过期,除非手动删除
Sessionstorage随浏览器关闭而结束
getItem
setItem
removeIte
key
clear

与cookie的对比

这里写图片描述

Web SQL

一个Html5环境下可以用Js执行CRUD的关系型Web数据库
openDatabase
Transaction
executeSql

IndexedDB

非关系型数据库
异步API
可以建立索引方便查询
支持事务
无大小限制
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值