问题标签 [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.
browser-cache - 浏览器如何处理过期标头、缓存控制标头、最后修改标头?
我是一名 Web 开发人员,曾使用过 PHP 和 .NET。有一年多的网络工作经验,对浏览器的缓存功能还不是很了解,希望这里的网络高手可以帮到我。我心中的问题是:
- 浏览器实际上是如何缓存东西的,它是否请求查看缓存的文件是否在服务器上发生了变化,
- 什么是开发人员充分利用浏览器缓存的理想方式,同时也能够毫不费力地在网站上推送新的更改。我认为如果浏览器以某种方式缓存我的 CSS、JS 和图像,然后每次都检查它们对服务器的修改,这可以解决问题。但我不知道该怎么做。
html - 制作页面告诉浏览器不要缓存/保留输入值
大多数浏览器缓存表单输入值。因此,当用户刷新页面时,输入具有相同的值。
这是我的问题。当用户单击Save时,服务器验证 POST 数据(例如检查的产品),如果无效,则将其发送回浏览器。但是,如上所述,即使服务器清除了某些值的选择,由于浏览器缓存,它们仍然可能被选中!
我的数据有不可见的(直到选中父项)复选框,因此用户甚至可能不知道某些先前的值仍然被选中,直到再次单击保存并收到错误消息 - 即使用户认为它不是。这很烦人。
这可以通过执行Ctrl+来解决F5,但它甚至不是解决方案。是否有一种自动/编程方式告诉浏览器不要在某些表单/页面上缓存表单输入数据?
caching - 为什么 firefox/chrome 显示的页面与 IE8 不同?
当我查看这个已发布的 Google Docs 文档时,我看到的是Firefox和Chrome的最新版本,但是IE8的旧版本。此外,通过PHP/Curl对它进行屏幕抓取给了我一个旧版本。
我在 IE8 中尝试过CTRL-Refresh,但我无法让它显示最新版本。无论我尝试在 PHP/Curl 中更改什么标题,我都无法让它向我展示最新版本。
注意:我确信我可以在 IE8 中挖掘并找到一些要清除的缓存条目,但是在这个 URL 上没有发生的事情是在 cnn.com 上发生的,它确实每次我查看它时都会给我当前的新闻在 IE8 中,而不是几天前网站的一些缓存版本?例如,Google Docs 是否没有发送浏览器(或至少 IE 和 PHP/Curl)期望的某种标头以不显示缓存版本?
我在这里对浏览器/标题/缓存有什么不了解的地方?不同的浏览器怎么会显示一个页面的不同内容呢?
(来源:deviantsart.com)
html - SO 的表单如何记住以前的输入值?
我注意到如果我通过按浏览器的后退按钮返回“提问”页面,会记住标题或正文部分。
此功能在我测试的所有浏览器中都可用,但在我自己的项目中的表单中不存在。
我怎样才能接近这种效果?
更新
我仍然没有任何线索,但猜猜http标头或javascript启用了某种客户端缓存?
performance - expires 标头说明
我有一个在 Apache 上运行的 joomla 应用程序。为了提高站点性能,我们已经将一个 .htaccess 文件写入应用程序的根目录,并为所有静态内容设置了一个远期过期标头。根据需要,文件第一次以 200 状态代码重新加载。当再次单击同一链接时,许多文件直接从缓存中提供。我需要解释两件事
当我按 f5 时,会加载一些带有 304 状态代码的文件,但是我希望它们直接来自缓存,而不需要访问服务器以获取状态标头?
当我关闭浏览器并再次返回同一页面时,我看到同样的事情发生了许多文件加载 304 状态代码,尽管我认为它们会直接从浏览器缓存加载?
我知道 304 也从浏览器缓存中提供文件,但我想避免服务器之间的标头通信,因为我的静态文件永远不会改变。另外我想补充一点,我的请求是通过 https 连接进行的,这是否会产生任何问题。
java - 防止 IE 缓存
我正在使用 Struts 开发一个 Java EE Web 应用程序。问题在于 Internet Explorer 缓存。如果用户注销,他可以访问某些页面,因为它们被缓存并且没有请求。如果我点击刷新它工作正常。此外,如果用户再次进入登录页面,它不会重定向他,因为该页面也被缓存。
我想到了两个解决方案:
- 编写一个拦截器(类似 servlet 过滤器)以添加到响应标头无缓存等。
- 或者
<meta>
在每个页面上放置标签。
我应该做哪一个?
browser-cache - 文件通常在浏览器缓存中保存多长时间
文件通常在浏览器的缓存中保存多长时间?我想知道一般人群 - 我需要等待多长时间才能合理地确定大多数人的缓存会重新获取文件?
asp.net - 要求浏览器缓存我们的图像 (ASP.NET/IIS)
我刚刚针对我们的网站运行了Google 的 Page Speed应用程序,其中一项建议是利用浏览器缓存。扩展这一点揭示了以下内容:
以下可缓存资源的新鲜度生命周期较短:为以下资源指定至少一周后的到期时间:
<
一长串图像>
<
一些javascript文件>
如何延长特定图像的“新鲜寿命”?
这是一个在IIS7.5上运行的ASP.NET项目
php - 在php中重新上传具有相同文件名的图像时如何清除浏览器缓存?
我有一个项目列表,其中还包含一个图像缩略图。有时我需要更改缩略图,但保持文件名相同。有没有办法强制浏览器下载新上传的图片,而不是从浏览器缓存中抓取一张?
当人们更新他们的头像时,这非常相关,这会导致一些用户感到困惑,他们一直看到他们的旧头像,直到他们清除浏览器缓存或重新启动浏览器。
ruby-on-rails - Ruby on Rails:如果是 AJAX 请求,如何将内容过期设置为 15 分钟
以下是检测 AJAX 请求并将过期设置为 15 分钟以便相同的 GET 不需要任何网络流量的好方法吗?
更新: 我找到了一个更短的替代方案,即expires_in
虽然,在那之后,标题变成:
曾经是
当它是早期版本时。但请注意,这Cache-Control
是针对 HTTP/1.1 的,甚至在几年前,它已被 99% 的浏览器支持,正如《高性能网站》一书中所述。