问题标签 [browser-cache]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
19 回答
235728 浏览

html - 如何强制网络浏览器不缓存图像

背景

我正在为两个公益网站编写和使用一个非常简单的基于 CGI (Perl) 的内容管理工具。它为网站管理员提供了用于填写字段(日期、地点、标题、描述、链接等)并保存的事件的 HTML 表单。在该表单上,我允许管理员上传与该事件相关的图像。在显示表单的 HTML 页面上,我还显示了上传图片的预览(HTML img 标记)。

问题

当管理员想要更改图片时,就会出现问题。他只需点击“浏览”按钮,选择一张新图片,然后按确定。这很好用。

上传图片后,我的后端 CGI 会处理上传并正确重新加载表单。

问题是显示的图像没有刷新。即使数据库拥有正确的图像,旧图像仍会显示。我已将其范围缩小到图像被缓存在网络浏览器中的事实。如果管理员在 Firefox/Explorer/Safari 中点击 RELOAD 按钮,一切都会正常刷新,新图像就会出现。

我的解决方案 - 不工作

我试图通过编写一个日期很远的 HTTP Expires 指令来控制缓存。

请记住,我在管理方面,我并不关心页面是否需要更长的时间来加载,因为它们总是过期的。

但是,这也不起作用。

笔记

上传图像时,其文件名不会保存在数据库中。它被重命名为Image.jpg(在使用它时简单地说明一下)。用新图像替换现有图像时,名称也不会改变。只是图像文件的内容发生了变化。

网络服务器由托管服务/ISP 提供。它使用 Apache。

问题

有没有办法强制网络浏览器不缓存此页面的内容,甚至不缓存图像?

我正在处理使用数据库实际“保存文件名”的选项。这样,如果图片改变了,IMG标签的src也会改变。但是,这需要整个站点进行大量更改,如果我有更好的解决方案,我宁愿不这样做。此外,如果上传的新图像具有相同的名称,这仍然不起作用(例如图像经过了一些照片处理并重新上传)。

0 投票
21 回答
325868 浏览

javascript - 防止浏览器缓存 AJAX 调用结果

看起来如果我使用 加载动态内容$.get(),结果会缓存在浏览器中。

在 QueryString 中添加一些随机字符串似乎可以解决这个问题(我使用new Date().toString()),但这感觉就像一个 hack。

有没有其他方法可以实现这一目标?或者,如果唯一的字符串是实现这一目标的唯一方法,除了new Date()?

0 投票
5 回答
3812 浏览

session - 清除所有网站缓存?

是否可以清除所有站点缓存?我想在用户注销或会话到期时执行此操作,而不是指示浏览器不要缓存每个请求。

0 投票
13 回答
36456 浏览

firefox - Firefox addon to remove cache and cookies of one domain?

I use Firefox to develop a web site and at the same time to browse the web, read my gmail, etc.

The problem is every now and then I need to delete the cache and or remove the cookies of the web app, but I want to stayed logged in in the other web pages I am visiting.

Do you know a Firefox plugin (or Firefox trick) that can help with this issue?

0 投票
4 回答
729 浏览

firefox - 提交表单后,FF3 从远程 IP 重定向到本地主机

我正在使用本地 IP(例如 10.1.1.59:8080)访问网络上的另一台计算机。登录页面加载良好,但表单提交后 firefox (3) 重定向到本地主机而不是远程 IP。

IE6/7/8 没有问题,所以它似乎是一个 Firefox 问题。

有任何想法吗?

0 投票
7 回答
1474 浏览

html - 如何请求浏览器始终更新(也就是从不缓存)某些页面元素,例如 CSS 表格?

在开发我的页面时,我注意到一个一直困扰我的问题:虽然 Firefox(我的通用“开发”浏览器)总是在 CSS 和图像在服务器上发生更改时更新它们,但 Internet Explorer 并不总是这样做。通常,我需要在 IE 中刷新页面,然后它才会向服务器询问更新版本的东西。

据我了解,浏览器不应该至少检查每个请求的所有服务器端对象的时间戳,然后根据需要更新它们客户端吗?有没有办法我可以...不强制,但是..“鼓励”浏览器对某些项目执行此操作?

我在这里遇到的主要问题是我的页面上有一些 JavaScript,这些 JavaScript 依赖于以某种方式初始化的 CSS,反之亦然。当一个更新而另一个不更新时(在 IE 中很常见,当两者都在自己的外部页面中时),它会导致混乱,并且页面上偶尔会出现飞溅的结果。我可以自己处理“刷新页面”的舞蹈以进行开发,但是当我在网站上进行脚本狂潮时,我不想鼓励我的用户“刷新页面或其他”。

任何建议将不胜感激。页面本身更新顺利(它是 PHP),所以最坏的情况是我可以将 CSS 和 JavaScript 吐到页面本身,但这真的很难看,当然我会不惜一切代价避免它。

0 投票
8 回答
476426 浏览

http - Cache-Control: max-age=0 和 no-cache 有什么区别?

标头Cache-Control: max-age=0暗示内容立即被认为是陈旧的(并且必须重新获取),这实际上与Cache-Control: no-cache.

0 投票
6 回答
29757 浏览

javascript - 浏览器是否在每个页面加载时解析 javascript?

每次页面刷新时,浏览器(IE 和 Firefox)是否解析链接的 javascript 文件?

他们可以缓存文件,所以我猜他们不会每次都尝试下载它们,但由于每个页面本质上是独立的,我希望他们能够拆除任何旧代码并重新解析它。

这是低效的,虽然完全可以理解,但我想知道现代浏览器是否足够聪明,可以避免站点内的解析步骤。我正在考虑网站使用 javascript 库(如 ExtJS 或 jQuery 等)的情况。

0 投票
8 回答
136589 浏览

asp.net - 禁用整个 ASP.NET 网站的浏览器缓存

我正在寻找一种方法来禁用整个 ASP.NET MVC 网站的浏览器缓存

我找到了以下方法:

还有一个元标记方法(它对我不起作用,因为一些 MVC 操作通过 Ajax 发送部分 HTML/JSON,没有头部元标记)。

但我正在寻找一种简单的方法来禁用整个网站的浏览器缓存。

0 投票
14 回答
86313 浏览

html - 有没有办法强制浏览器刷新/下载图像?

我有一个问题,用户报告他们的图像没有被上传并且旧的图像仍然存在。仔细检查后,新图像就在那里,它们只是与旧图像具有相同的名称。我在上传时所做的是重命名图像以用于 SEO 目的。当他们删除图像时,旧索引变得可用并被重复使用。因此,它具有相同的图像名称。

有没有办法(我想可能有一个元标记)告诉浏览器不要使用它的cahce?

更好的答案是将图像重命名为全新的名称。我会着手解决这个问题,但与此同时,当我解决更大的问题时,这是一个快速的解决方案。