问题标签 [http-caching]

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 投票
2 回答
5594 浏览

apache - 三个 .htaccess 过期规则之间的区别

以下三个 .htaccess 规则之间有什么区别以及何时使用每个规则,是否有任何特殊用例更喜欢其中一个?:

0 投票
3 回答
346 浏览

javascript - Howto:Javascript 文件始终是最新的

我有一个使用大量 javascript 的 .NET Web 应用程序。.aspx 和 .js 文件齐头并进。问题:.aspx 文件在客户端上始终是最新的(未缓存),但 .js 文件可能会被缓存。如果文件只缓存一个会话,这甚至是一个问题,因为用户在我的网站上花费了很多时间,而且每次我更新 .aspx/.js 对时,用户都会遇到问题。

现在,我找到了一个解决方案,但我不确定是否有更好的解决方案,或者我的解决方案是否存在性能缺陷。

这是我的解决方案:

.aspx 中的 .js 引用:

因此,“GetScriptLastModified”将附加一个 ?v= 参数,如下所示:

因此,呈现的 .js-Link 在客户端看起来像这样:

每次上传新版本时,链接都会更改,我可以确保用户在更改时立即获得新的脚本或图像。

0 投票
4 回答
2310 浏览

http - 如何阻止浏览器使用 HTTP 1.1 标头缓存我的网页?

尽管我已经设置Expires了一个过去的日期,并且Cache-Controlno-store, no-cache我仍然缓存了我的一个网页。

以下是发送到浏览器的 HTTP 标头:

FF 3.6、Safari 和 IE 8 的行为相同。

如何让浏览器停止缓存页面?

0 投票
3 回答
797 浏览

php - 缓存来自 PHP 的标头

在 PHP 中,默认情况下不发送与缓存相关的标头。

现在,由于默认情况下它没有说任何关于缓存的内容,它会导致说 example.com/index.php 在某些情况下被缓存吗?

0 投票
3 回答
733 浏览

c# - c# 代码或 IIS 6 中的缓存控制

当通过移动 3G 网络查看我的一个网站时,在这种情况下,网络运营商 o2 正在重写页面并嵌入所有样式,这会导致页面中断。由于样式规则没有正确遵循。

现在我从 o2 的人那里了解到,我可以通过在我的网站上添加一个“no-transform”的缓存控制标题来阻止这种情况的发生。

问题是通过 IIS 添加这个并不能做任何事情。并且您不能通过 .net 中的代码添加缓存控件“无转换”,因为它不是 system.Web.HttpCacheability 选项之一。

知道如何获取此标题并阻止移动运营商篡改页面。

0 投票
1 回答
420 浏览

php - 如何强制浏览器在刷新时不重新请求资源?

我试图强制浏览器永久缓存 CSS、图像、js 等不同的资源。对于浏览器来说,永远不要尝试刷新图像/css 非常重要,因为在一个页面上可能有数千个小图像,并且当浏览器尝试刷新它时会轰炸服务器,并且不必要地将页面保持在刷新模式。除非请求路径改变,否则图像/css 永远不会改变。

现在,我将图像/css 的路径设置为带有如下 URL 的脚本:

并且脚本在发送资源之前发送这些标头:

但是,如果点击 Refresh 按钮,Chrome 和 Firefox 都会重新请求图像/css。如果您在地址栏上按 Enter,Chrome 似乎也会发送请求,这与 Firefox 不同。

我的问题是他们为什么要这样做,因为 Expires 标头应该使它在 2037 年之前不会再次发出请求,即使用户按下刷新也是如此。我做错了什么,还是错过了什么?

0 投票
1 回答
854 浏览

caching - 是否可以在 Varnish 中进行甜甜圈缓存?

我是一名 ASP.NET 开发人员,试图了解更多关于如何在开源堆栈上完成缓存的知识。我想知道是否可以像使用 ASP.NET MVC一样在 Varnish 上进行甜甜圈缓存。

我意识到 Varnish 是一个分布式缓存系统,而 ASP.NET MVC 示例是本地缓存,但是是否可以在 Varnish 中实现这种行为?

0 投票
1 回答
793 浏览

java - 如何使用java删除页面缓存

即使我使用 session.invalidate 方法,我的网页也会被缓存。如何使用 java 编码删除页面缓存?

0 投票
1 回答
386 浏览

caching - 延迟 HTTP 缓存

我有一个通过信息亭向访问者显示的网站。人们可以与之互动。但是,由于该网站不是本地托管的,并且使用互联网连接 - 页面加载速度很慢。

我想实现某种惰性缓存机制,例如当人们浏览页面时 - 页面和页面引用的资源被缓存,以便同一页面的后续加载是即时的。

我考虑过使用 HTML5 离线缓存——但它需要我在清单文件中指定所有资源,这对我来说是不可行的,因为网站非常大。

还有其他方法可以实现吗?也许使用 HTTP 缓存标头?我还需要某种方法在某个时候使缓存无效,以将新更改“推送”到浏览器......

0 投票
2 回答
698 浏览

asp.net-mvc - 使用 OutputCacheAttribute 时忽略 SetLastModified

我有一个 ASP.NET MVC 方法(.NET 4.0 上的 v3.0)设置如下:

我希望这会以指定的Last-Modified标头设置返回Mon, 07 Feb 2011 00:00:00 GMT,但它实际上是作为输出第一次缓存在输出缓存中的日期返回(即自 IIS 重置后第一次调用该方法)。

如果我注释掉该[OutputCache]属性以便没有完成输出缓存,那么Last-Modified标头会按预期返回,因此看起来输出缓存基础结构中的某些东西选择忽略我为此指定的值。

知道为什么它可能会这样做吗?有没有办法让它使用我指定的值作为Last-Modified日期?