图片后面添加时间戳后,每次请求都会重新获取图片吗?

2023-06-30 16:01:54 +08:00
 coolair
比如,获取头像的地址是这样的 http://localhost/user/{id}/avatar

但是,img 标签的 src 用这个地址,如果换了头像就不会变了,考虑在链接后面添加时间戳:

"http://localhost/user/{id}/avatar?" + new Date().getTime()

这样的话,每次刷新/请求都是新的时间戳,如果头像没有修改,会一直重复下载图片吗?

我怕如果每次刷新都全部重新加载的话,会给服务器造成压力。
1260 次点击
所在节点    问与答
25 条回复
tool2d
2023-07-03 10:15:15 +08:00
@296727 就是一个 F12 的事情。

Expires 在没到期之前,浏览器不会发送网络请求。network 面板是空的,哪里来的 etag?
296727
2023-07-03 10:31:17 +08:00
@tool2d 开心就好,而且 OP 说的是这个问题吗?我说的是解决这个问题,你在说什么,脑子瓦特了就去看医生,看不了医生了就自己 Google ,或者问 chatgpt 。让你自己写 demo ,你写了吗? etag 和 Expires 共存的情况下,到底是不会请求,还是返回 304 ,自己去看看不可以吗? https://imgur.com/a/DxHxO6w
296727
2023-07-03 10:33:42 +08:00
@tool2d 对不起,我瓦特了
tool2d
2023-07-03 10:35:58 +08:00
@296727 如果在浏览器里的地址栏输入后回车,那么 cache-control 是不生效的。这是特殊情况。

一般情况下,你截图里 max-age=1800 就是这个图片的离线周期。在这期间内,浏览器上不会随便发生网络请求。

这不是我自己发明的,是 cache-control 就是这样规定的。
296727
2023-07-03 10:46:08 +08:00
@tool2d 所以我说我瓦特了

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

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

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

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

© 2021 V2EX