当前位置: 首页 > 后端技术 > Node.js

浏览器缓存机制

时间:2023-04-03 13:39:40 Node.js

我们在开发网站的时候,往往对网站的性能有着极高的要求,当然外包除外。我见过的外包,对效率的要求特别高。代码质量和性能要求都不是很高。所以我不会在这里解释太多。高性能就是使用各种缓存,后台redis/memcached缓存等,前台是浏览器缓存。什么是浏览器缓存?简单的说,就是浏览器继续使用服务器上的内容,而不是服务器上的内容。如何使用它?在使用之前,先说说浏览器的刷新机制。浏览器刷新常见的浏览器刷新如下,Ctrl+F5、Ctrl+R、F5,还有一种是go,forward。不要觉得转发不爽。其实,这是错误的。让我们谈谈这些差异。Ctrl+F5:这个在开发过程中,经常用到。为什么说Ctrl+F5是强制刷新,让浏览器不遵守缓存协议,所有请求都强制到服务器重新请求。重新请求所有资源。Ctrl+R|F5:让浏览器遵守缓存协议,比如last-modified,etag等,如果服务器返回304,则认为未修改,直接调用之前的内容。详情将在下面说明。最人性化的操作是forward->:还有一个类似的操作,就是进入浏览器直接回车。浏览器会使用所有的代码过期和未过期,向请求最少的浏览器请求。不用担心这种强制刷新,我们来谈谈浏览器缓存的一些常见例子。Last-modified我们在浏览网站的时候,经常会看到这个头部信息。这个header信息是用来记录最后修改时间的,如果网站响应的header信息有这个,那么下次访问时,浏览器会带上这样一个标识If-Modified-Since:时间,服务器可以判断基于此是否应该能够直接使用缓存。当然一般的动态网页很少用这个,因为没有传统意义上的最后修改时间。一般用于长时间不修改文件内容的静态网站。让我们做一个简单的例子。If-Modified-Since//浏览器缓存在当前session中得到如下结果Etags->If-Modified-Since//浏览器缓存当前sessionExpires//关闭后也有效Cache-Control//关闭后也有效我们可以根据不同的场景应用不同的缓存机制。