面试官说 缓存都是前端的事,这是真的吗

2020-05-13 15:36:48 +08:00
 rain0002009

面试官 问我 强缓存,协商缓存那些事,这些问题是常常问,常常看,常常忘,我也就知道写 Cache-control: no-cache 这种水平了,然后又说了一些其他去缓存的方法,毕竟咱平常也就干干这种事了,面试官说这只是去缓存,缓存主要都是前端控制的,我说不是服务端控制,咱不就配合配合吗

然后就聊不下去了呀,各位前端大佬,有啥地方是咱前端控制缓存的呀,还不是去缓存那种。部署?

3571 次点击
所在节点    问与答
23 条回复
huayumo
2020-05-13 15:58:56 +08:00
这些人就爱瞎几把显摆,做了这么多年站了,缓存也就是图片之类的静态上 cdn,后端优化数据查询,速度溜溜的,然后加带宽,加服务器
rioshikelong121
2020-05-13 16:06:08 +08:00
request headers 里面可以设置 Cache Control 这不就是前端可以控制的么。
freshgoose
2020-05-13 16:06:20 +08:00
楼主知识水平还不够啊,你大体上是对的,可以自信点。
ypzhou
2020-05-13 16:06:22 +08:00
假的
rioshikelong121
2020-05-13 16:06:38 +08:00
html meta 应该也可以设置缓存策略。
falcon05
2020-05-13 16:06:49 +08:00
前后端都有缓存的概念,但面试官这么说肯定是错的,前端缓存估计是 cookie, local storage 之类,还有离线缓存
manami
2020-05-13 16:09:42 +08:00
叫面试官使用前端实现下分布式缓存?
cjc2017
2020-05-13 16:39:44 +08:00
楼主应该是被面试官从 http=>请求=> 缓存这么问过来的吧
rain0002009
2020-05-13 16:42:25 +08:00
@cjc2017 #8 不 是直接问你 缓存你有哪些了解 强缓存 协商缓存那些
dddd1919
2020-05-13 17:08:08 +08:00
说 [都是] 肯定不对,但强缓存和协商缓存就是前端控制有啥问题呢?
后端缓存主要为解决数据库 IO 压力等等,很少需要前端配合,跟面试官提到的缓存也不是一个概念,小朋友你是认真的么?
rain0002009
2020-05-13 17:44:02 +08:00
@dddd1919 #10 可能我表达的太绝对了吧 我主要是想表达出面试官的那个意思 按他的话理解下来 前端是主导这些设置的 而且不仅仅只是设置去缓存这样 还应该有更高级的作用

但 以我有限的水平 真不知道啥高级应用 除了 去去缓存
cjc2017
2020-05-13 18:23:17 +08:00
@dddd1919 虽然缓存几个字段和参数作用面试的时候都能说出来 但前端处理缓存这块还真没怎么在实际项目中专门做过 还想就这个机会请教老哥一下
我个人在项目中处理优化涉及到缓存方面的一般是这样 1.HTML 文件添加 meta 标签设置 Cache-Control:no-store 一直不做缓存保持最新(因为 webpack 打包 保证 html 内 js 和 css 的引用) 2.基础框架和依赖文件和图片走 cdn 缓存 3 打包出来的 js 文件使用 etag(不过这个是后端设置的)
因为实践的比较少 不太清楚强缓存和协商缓存还有哪些具体的场景是前端可以控制的呢
imhxc
2020-05-13 18:31:26 +08:00
楼上提到的强缓存、协商缓存是前端控制的,怎么感觉和我理解的不一样呀。
严格来说,我理解的强缓存和协商缓存需要由后端配合,如果后端不配合,前端通过设置 header 头信息来控制强缓存、协商缓存是没有用的。
johnnyNg
2020-05-13 19:20:10 +08:00
不是应该是后端设置返回头来控制缓存吗?怎么成了前端设置请求头了
passerbytiny
2020-05-13 19:42:39 +08:00
单论 http 协议的话,缓存都是浏览器负责最终处理的,但是否缓存由浏览器和服务器协商。因为最终由浏览器负责,那么理论上来说,浏览器拥有蛮不讲理完全控制权。这是浏览器、web 服务器、http 协议的事,干前后端屁事。
xizismile
2020-05-13 19:59:33 +08:00
这个面试官很菜,按你的理解来就对了,不要被他影响
xizismile
2020-05-13 20:00:06 +08:00
面试的多了,爱显摆的垃圾面试官也是很多的,要学会区分
acthtml
2020-05-13 20:12:07 +08:00
可能面试官说的“前端”定义更加宽泛吧,包含了你说的服务端。
sandxin
2020-05-13 23:22:13 +08:00
有几个人在瞎扯,据我所知前端缓存控制只有 meta
强缓存协商缓存都是 response heaher 控制
常用实践是 html 不缓存,资源全部强缓存,发版变更资源 hash 。接口请求缓存 serveice worker 另当别论
hellofrank
2020-05-14 09:45:44 +08:00
非真

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/671276

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX