问题标签 [cache-control]

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 回答
158 浏览

c# - File.ReadAllText 和母版页行为

如果我在母版页中使用

从文本文件中加载一些文本,作为文字中的字符串。

当我将根据我的母版页加载内容页时,代码将始终打开并读取文本文件(对于每个内容页请求)或者文本文件将仅在母版页中缓存一次?

谢谢你的时间

0 投票
1 回答
369 浏览

caching - 即使禁用浏览器缓存,子 SWF 仍在缓存

我有一个加载几个子 SWF 的父 SWF。即使我的浏览器缓存被清除——实际上它已被禁用——重新加载,甚至重新启动,浏览器也不会触发最新版本的子 SWF 加载到父 SWF。我什至可以从 FTP 服务器上删除 SWF,它仍然为我提供了上一个版本。

什么在缓存子 SWF,我如何强制它们刷新?我不太关心最终用户,因为一旦站点开发结束,SWF 文件就不会经常更改。(它们都加载到通过 PHP 缓存控制禁用缓存并过期标头的 XML 文件中。)

我主要在 PC 和 Mac 上使用 Firefox,但它似乎在 IE/PC 和 Safari/Mac 上做同样的事情。PC 使用的是我的 ISP 的 DNS,而 Mac 使用的是 OpenDNS……不确定这是否与它有关。该站点托管在 Rackspace Cloud 上。

0 投票
3 回答
300 浏览

php - 缓存控制与 mysqli->affected_rows 混淆

我有一个网页(我们称之为 A.html)。A.html 有一些 javascript 使用简单的document.location="B.php"将页面切换到动态 php 页面(我们称之为 B.php)。B.php 根据看到的 cookie 运行 mysql 查询,并根据 mysqli->affected_rows 变量返回结果。但是,每次页面切换时 mysqli->affected_rows 都等于 0,即使 mysql 表确实按照预期的方式进行了更改。有趣的是,当我使用 url 栏(或刷新页面)直接进入 B.php 时,mysqli->affected_rows 是 1,就像它应该的那样。

查看 wireshark,两个 GET 请求之间的唯一区别是第二个(非 JavaScript)请求与Cache-Control: max-age=0有一行。有谁知道为什么这会影响任何事情,如果有办法解决这个问题?

编辑:继承人的代码

0 投票
1 回答
1512 浏览

android - Android使用PhoneGap缓存数据文件

我有一个 android 应用程序(在 dev 中),它在开始时从外部服务器(比如 www.google.com/data.js)读取数据文件。它检查我的 SQL lite 数据库,如果版本不匹配,则更新 SQLITE。现在的问题是,在模拟器中,data.js 文件被缓存了。只有当我卸载应用程序时,它才会真正加载新数据。如何避免缓存 JS 文件?

0 投票
1 回答
442 浏览

php - 为什么 PHP 区分 .php 和 .abc 扩展名以进行缓存?

PHP引擎如何处理仅文件扩展名不同的相同文件之间似乎存在问题。

问题:“一个 If-Modified-Since 条件请求返回的全部内容没有改变。”

此外,我测量到 .php 扩展名的加载速度比具有 .xxx 扩展名的相同双胞胎快得多,即使文件内容相同,它们仅在文件扩展名上有所不同。

替代文字

替代文字

“HTTP 允许客户端发出条件请求以查看他们持有的副本是否仍然有效。由于此响应具有 Last-Modified 标头,因此客户端应该能够使用 If-Modified-Since 请求标头进行验证。RED 已经完成并发现即使资源没有更改,它也会发送完整的响应,表明它不支持 Last-Modified 验证。”


首页以.php

替代文字


完全相同的文件,但结束.ast

替代文字


鉴于:

将 home.php 文件复制为 home.xxx,并将此扩展名添加到 htaccess 以将其识别为 PHP 文件。.php 文件监听新鲜度设置为 3 小时的 php.ini,非 .php 文件必须监听新鲜度设置为 2 小时的 htaccess,根据:

到目前为止一切顺利,一切都加载了,除了非 php 文件没有正确缓存,或者它缓存很好但没有很好地验证,更具体地说。请参阅随附的图片。只有非 php 文件扩展名会导致错误并且加载速度较慢。

整个 page.php 加载速度更快,因为其中的所有元素然后从缓存中正确加载,而 page.abc 在它应该被缓存时返回了完整的请求,这意味着整个页面更慢。

底线:应该改变什么,以消除返回完整内容不变的 If-Modified-Since 条件请求?

0 投票
9 回答
25428 浏览

c# - 将 Cache-Control 和 Expires 标头添加到 Azure 存储 Blob

我正在使用 Azure 存储来提供静态文件 blob,但我想在提供时向文件/blob 添加一个 Cache-Control 和 Expires 标头,以降低带宽成本。

CloudXplorer和 Cerebrata 的Cloud Storage Studio等应用程序提供了在容器和 blob 上设置元数据属性的选项,但在尝试添加 Cache-Control 时会感到不安。

任何人都知道是否可以为文件设置这些标题?

0 投票
3 回答
173 浏览

caching - memcached,业务还是数据?

缓存是业务层还是数据层的一部分在一个简单的 LAMP 堆栈中?

0 投票
1 回答
2271 浏览

http - HTTP 标头:Cache-Control 是否足够,还是我还需要 Expires?

HTTP 1.1 引入了一类新的标头,Cache-Control 响应标头,让 Web 发布者可以更好地控制其内容,并解决 Expires 的限制。

由于其局限性,Expires 是一种痛苦。首先,因为涉及到一个绝对日期,Web 服务器和客户端缓存上的时钟必须同步;如果他们对时间有不同的想法,则无法达到预期的结果,并且缓存可能会错误地将陈旧的内容视为新鲜内容。

Expires 的另一个问题是很容易忘记您已将某些内容设置为在特定时间过期。如果您没有在过期时间之前更新它,那么每个请求都会返回到您的 Web 服务器,从而增加负载和延迟。

那么,我们是否需要再使用 Expires,或者 Cache-Control(特别是 max-age 设置为某个遥远的未来秒数)是否足以满足我的静态内容?我想避免使用 Expires,但我应该同时设置吗?

0 投票
2 回答
3937 浏览

java - Spring Security 用户缓存失效

使用 Spring Security 我有一个这样的DaoAuthenticationProvider描述:

http://static.springsource.org/spring-security/site/docs/2.0.x/reference/dao-provider.html

我也有缓存(也像那篇文章中描述的那样)。

问题是当一个请求带有一个好的用户名(已经在缓存中),但是一个错误的密码时 - 它从缓存中返回用户,就好像它是一个好的用户名/密码一样。因为它使用用户名作为密钥,所以根本不涉及密码。

从缓存中返回用户的确切代码:

以前有人处理过这个问题吗?我也可以检查密码是否相同,但这将是一个自定义的东西。

谢谢你。

0 投票
1 回答
5449 浏览

apache - 在 Apache 服务器上使用 .htaccess 实现缓存控制

好的,我仍在尝试了解一些缓存内容,并且已经浏览了一些可以在 Google 上找到的示例。我已将以下代码添加到我的 .htaccess 文件中:

使用 Chrome 审计工具和 YSlow Firebug 工具,看起来这正在缓存我的一些图像/文件,但到目前为止还不是全部。我仍然有一个未缓存的文件列表(.jpg、.js 和 .css - 我知道我没有将 css 文件设置为在此处缓存)。Chrome审核中的消息只是说明The following resources are missing a cache expiration. Resources that do not specify an expiration may not be cached by browsers:

一些未缓存的图像是背景图像,其他图像是 js 库的一部分,它们是通过 JS 调用的——这会影响它们为什么不缓存吗?

抱歉,我无法提供代码链接 - 网站仍处于保密状态,仅限于客户端视图。

提前致谢!