问题标签 [cache-expiration]

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 投票
1 回答
791 浏览

asp.net - web.config 过期标头不适用于 png 文件

我在网站根目录的 web.config 文件中使用此代码为我的静态内容设置过期标头:

它似乎适用于我的 css 和 javascript,因为 Yslow 不再给我错误。但是,它确实表明我在页面上的所有 png 图像由于某种原因没有过期标题。

我正在使用 Microsoft Azure 网站,因此只能访问 web.config 文件。关于如何配置它以使其也涵盖我的 png 的任何想法?

0 投票
1 回答
1174 浏览

android - Android - SharedPreference 是否有默认到期日期?

简单地说:全部在标题中。

详细信息:我的目标是将数据存储在 SharedPreference 中,直到开发人员手动清除它们。然后我想知道:

1) SharedPreference 有一个默认的到期日期,因此我的 android 设备会在某个时候自动清除存储在 SharedPreference 中的数据

或者

2) SharedPreference 没有默认到期日期,因此除非开发人员手动清除它们,否则我的 android 设备将永远将数据存储在 SharedPreference 中。

+) SharedPreference 中的数据有可能被android OS(后台)任务管理器清除吗?

哪一个是正确答案?或者,我错过了什么?

任何输入将不胜感激。

问候,

0 投票
0 回答
113 浏览

php - 如何管理我的 PHP 会话的生命周期?

我对 PHP 很陌生,所以我正在做一个简单的项目来练习。但是,我无法使会话管理正常工作。

我想要的是,当浏览器关闭时,数据(用户所在的当前页面)会保存一个小时。如果用户在一小时内返回,他应该看到他离开的同一页面,如果他在一小时后返回,他应该看到第一个问题。

当所有问题都被回答后,他应该看到一个分数屏幕,带有一个“再试一次”按钮,该按钮最好销毁/终止/删除会话并开始一个新会话,将用户引导到第一个问题。

如果我遗漏了第 3-8 行,我的代码会按预期工作,我会遍历所有问题,直到我卡在分数屏幕上并使用不起作用的“再试一次”按钮,我只能通过关闭返回第一个问题并重新打开浏览器。

使用这些行,页面可以很好地解决问题,但是当我重新启动浏览器时,它会从第一个问题开始。当我不做任何事情关闭浏览器并再次打开页面时,我找到了我最初离开的页面。我关闭并再次打开浏览器,我再次找到正确的页面,我再次这样做,我回到问题 0。无论我多久重新启动浏览器,我都停留在问​​题 0。

当我在浏览器中查看 cookie 时,我一直都有相同的 cookie,它从 2015 年 12 月 14 日 18:48:45 开始。但是,执行时间也不正确,因为那是 2061 年 11 月 26 日 13:37:29,而不是一个小时后。我究竟做错了什么?

这是我的代码:

请帮助我,我真的被这个困住了。

-编辑-

我再次尝试省略第 3-8 行并保留session_set_cookie_params(600);, 以尽可能简单地测试此功能。我以与上述相同的方式对其进行了测试,一次又一次地重新打开浏览器并记下我得到的问题(q. 0 或 1)。我得到了一个看似随机的模式,第一个问题 0 和我应该回答的问题 1,其中 0 通常是最普遍的。我很确定它是随机的,因为我删除了 cookie 并多次重新进行测试,每次我看到不同的模式。不过,cookie现在确实在正确的时间过期。

正如另一个问题中所建议的那样,我也尝试了ini_set('session.cookie_lifetime', 600);代替session_set_cookie_params(600);功能,但我仍然有随机结果。如果我什至无法做到这一点,我认为尝试创建一个登录系统对我来说不是一个好主意......

0 投票
1 回答
1998 浏览

php - php中缓存文件的超时

在 php 中,我创建了一个缓存文件以存储复杂的结果变量。一个变量,一个缓存文件。干得好。

问题在于缓存的期限。目前我将超时和变量放入文件中,但它没有优化,因为我必须打开文件来检查超时。

我想(如果可能的话)检查文件属性的超时(例如使用函数 filemtime() 上次修改的日期)。我们可以将自定义属性添加到文件中吗?

另一种方法是在文件名中添加超时,不是我最喜欢的解决方案。

[编辑]

0 投票
1 回答
1195 浏览

java - JCache (JSR107) 是否允许不同条目的不同有效期?

假设我想缓存昂贵的方法调用的结果。这些缓存条目应该有不同的过期时间(又名 TTL)。如果将条目放入同一个 Cache 实例中,JCache 是否有可能?

我知道我可以为每个缓存分配不同的 ExpiryPolicy。但是我想知道是否可以将到期持续时间单独分配给 CacheEntry。

JCache 支持这个吗?如果是这样,我将不胜感激此代码示例的链接。这个问题的范围纯粹是 JCache,没有任何实现特定的功能。

0 投票
1 回答
82 浏览

dynamic - Infinispan 在运行时动态设置缓存范围的生命周期

我正在使用 Infinispan 8.1.0。

在我的项目中,我们选择了像会话缓存一样的 infinispan 缓存,每次一个用户连接到我的系统时,都会创建一个基于用户 ID 和会话 ID 的命名缓存。

像会话缓存一样使用 infinispan,需要处理缓存寿命,就像我们应该处理会话内存一样。所以我必须面对的问题是:

当用户关闭浏览器而不单击默认注销按钮时,如何删除用户会话缓存?

如何在运行时刷新并动态更新用户会话缓存的生命周期?事实上,用户会话过期时间必须在每个用户请求后刷新,否则 X 分钟后用户将无法在缓存中找到他的数据,即使他的会话仍然存在。

那么 infinispan 是否可以在运行时和缓存创建后设置缓存过期而不再次创建它?

0 投票
3 回答
781 浏览

android - 获取共享首选项特定值上次更新的日期和时间

用户登录应用程序后,我正在使用共享首选项来存储 userId。一旦 userId 存储在共享首选项中,我需要在 30 天后过期(删除)存储的 userId。是否可以获得特定共享偏好值的最后修改日期和时间。

0 投票
1 回答
1001 浏览

php - 在 Codeigniter 中搜索时按下的文档过期返回浏览器

我有一个搜索代码的程序。当我进行搜索时,它会显示一个带有搜索结果的页面。该页面将显示一些可以点击的内容。当我单击该内容时,它将向我显示产品的详细信息。在此详细信息页面中,当我在浏览器中单击返回时,它应该返回到搜索结果页面,但我在这里发现文档已过期。当我重新加载文档过期的页面时,它将再次显示搜索结果。我正在使用代码点火器。我尝试了一些我发现的代码,但它仍然无法正常工作。那是我的问题。请帮我。谢谢你。

控制器

搜索视图

0 投票
1 回答
1707 浏览

java - Guava Cache expireAfterWrite 仅适用于 getIfPresent 使用?

这个问题是为了验证观察到的行为,以确保以正确的方式使用 Guava Cache。

我已经设置了两个 Guava 缓存(参见下面的代码):有和没有构建器 - 正如 Guava文档所述:

使用 CacheBuilder 构建的缓存不会“自动”执行清理和逐出值,也不会在值过期后立即执行,或任何类似的操作。

似乎只有在getIfPresent()使用方法时才会观察到过期,即当查询键时,null在一段时间后返回值 > 过期间隔在键/值被写入缓存时传递。如果使用 CacheLoader 构建的 Cache 使用get()getUnchecked()导致CacheLoader.load()方法被执行,则不会观察到过期,即null永远不会返回值。

这是正确的期望吗?

感谢您的耐心和帮助。

0 投票
1 回答
920 浏览

asp.net - 如何防止 HttpRuntime.Cache 删除 ASP.NET 4.5 中的项目?

这是对这个问题的跟进,其中包含相互矛盾的答案。我也对与更新版本的 ASP.NET 相关的答案感兴趣。

我的应用程序用于HttpRuntime.Cache缓存一些永不过期的模型列表。它们在应用程序预热时加载,很少更改,但经常读取。

我的代码如下:

根据此处提供的文档,我还在 web.config 中包含了以下标记:

但是,有时ReportRemovedCallback会要求删除项目。我的感觉是来自 web.config 的缓存配置被忽略(文档清楚地表明它已经过时),这CacheItemPriority.NotRemovable意味着只有“非常高的优先级”,而不是“从不删除”。

问题: 有没有办法说服 HttpRuntime.Cache 永远不要删除某些项目?还是我应该考虑另一种缓存机制?