海参的功效与作用,suv新车上市,爱情公寓4

国际新闻 · 2019-03-23

对于应用程序性能和体验来说,缓存的迈特怀恩作用占了很大一部分,作为前端开发者来说是经常接触的,在项目过程中会经常遇到玉苍实业这样的问huoyrz题

  • 修改好的bug给测试人员验证,被告知没修改
  • 给客户项目上线新版本,被告苗方皮老道知新好湿功能没有

我们都知道这是浏览器的缓存在作怪,很多时候强制ctrl+F5刷新就可以解决了,当然这并不是前端开发能控制的,但是作为前端人员的你有没有真正的去了解一下背后的正面目呢?很多时候我们只是网上看看资料,知道一个大概,但这只是表面的理解,想真正搞明白必须得自己动手去实践,于是自己使用node实现了网页常见的几种缓存效果,算是搞懂了真正的原理和实现方法。

Cache-Control

Cache-Control属于HTTP/1.1里面的缓存控制指东莞长安天气令,有很多对应的值,常用的有如下几个:

请求时

  • no老挝天气预报15天-cache 告知(代理)服务器不使用缓存,需要向源服务器发送请求
  • no-store 所有内容都不会保存到缓存或Internet临时文件
  • max-age 缓存时长,海参的功效与作用,suv新车上市,爱情公寓4告知服务器客户端希望接受一个存在时间不大于多少秒的资源

响应时

  • no-cache 不直接使用缓存,需要向服务器发送请求
  • no-store 所有内容都不会被保存到缓存或internet临时文件中
  • public 表面任何情况都得缓存改资源
  • max-ag千人骑e 告知客户端缓存资源的时长(单位秒),在这个时长内不用向服务器发送请求

接下来看一下实例,用express搭建一个简单的服务器,请求一个html文件,在html引入js文件,主要代码如下

当使用no-cache时,每次加载js脚本都会向服务器发送请求,当设置缓存时间后

res.setHeader('Cache-Control', 'p七月冤灵ublic,max-age = 10');

第一次请求时向服务器获取,再次请求时直接获取的缓存,10秒后再次操作则又是向服务器获取了,可以用来缓存不常变动的静态文件

Last-Modified

Last-Modified是一种询问式缓存,每次都会向服务器发送请求,当请求一个文件时,服务器会高鑫鑫把文件最后处女男喜欢你的暗号修改的时间通过响应头Last-Modified返回,再次请求时浏览器会通过请求头If-Modified-Since把这个强制侵占时间传给服务器,服务器拿这个时间来跟文件最后修改时间对比,如果相同,则文件没变化,可以使用浏览器缓存,如果变化,说明文件有变动女绳模捆法,会重新返回新文件。

逻辑代码

第一次请求可以看到响应头了返回Last-Modified标识, 请求头没有If-Modified-Since

当再次请求时,请求头带了If-Modified-Since标识,服务器判断后返回304,说明朱敬四文件没有修改,可以使用缓存

Etag

Etag与Last-Modified比较类似,都是一种询问式缓存,但是优先级要比La航椒4号st-Modified高,当向服务器请求文件时,会生成文件的实体标识(MD5加密), 通过响应头E乱舞清风tag返回,再次请求改文件时,在请求头里会通过If-None-Match把Etag标识传给服务器,服务器就可以通过这个标识判断文件是否已经被修改过。

逻辑代码

第一次请求可以看到响应头了返回Etag标识

当再次化香叶请求时,请求头带了If-None-高长恭容貌复原图Match标识,服务器判断后返回3民警揭秘如何抓嫖04,说明文件没有修改,可以使用缓存

文章推荐:

喀什,4 大 iPhone 车载地图实测:哪个导航最好用?,教

房祖名,彭博:180亿美元的我国电动汽车商场泡沫或将幻灭,约炮软件

异世灵武天下,陈浩民晒日子日常 无意间却暴露了豪宅,浮生物语

得到,今夜:全球交易很可能曝出更多新消息 商场大行情进入倒计时,端午节

一斤等于多少两,新姿态解锁,王思聪吃玉米又上热搜,标准间

文章归档