首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“?${new ().getTime()}”如何更新JS中的图像?

“?${new ().getTime()}”如何更新JS中的图像?
EN

Stack Overflow用户
提问于 2020-03-22 06:42:47
回答 2查看 382关注 0票数 0

我看了一个教程,其中他们展示了将?${new Date().getTime()}附加到图像标记中src属性的值,用新图像更新当前图像。

我遇到了this question,在这里,这个问题的第一个答案是遵循同样的技术。

请有人向我解释一下这一特定技术的工作原理。谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-03-22 06:49:20

最简单的解释是,浏览器(通常是服务器)将缓存内存中的项,以减少页面加载时间。因此,如果您有十几个页面都在引用/images/logo.png,则会下载一次图像并将其存储起来,以便在每个页面上重新使用。很有效率对吧?

无论如何,有时图像会发生变化,而您不希望这种情况发生,所以您要做的就是更改文件的名称。例如,/images/logo.png?15/images/logo.png?16/images/logo.png?17等。浏览器不再尝试使用缓存的图像,因为查询实际上是不同的。

您所包含的代码片段仅包括文件名称的当前时间,以便使其惟一。

票数 1
EN

Stack Overflow用户

发布于 2020-03-22 06:47:03

不同的查询参数可能导致服务器提供不同的映像,这取决于后端逻辑。这种情况通常不是这样的--在许多设置中,请求具有不同查询参数的相同路径会给出相同的图像作为回报,但情况并不总是如此。

如果浏览器看到一个图像URL,其图像已经存在于缓存中,它将不再下载该图像-相反,它将从浏览器缓存中获取图像。但是,如果您将src更改为不在缓存中的一个,它将向服务器发出另一个请求。如果服务器在初始页面量和src更改之间更改了该端点上的映像,服务器上的新映像将被下载并显示在客户端上。

new Date().getTime()只是一种附加字符串的方法,浏览器缓存中肯定不存在该字符串。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60796628

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档