问题标签 [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 投票
5 回答
7332 浏览

ruby - 如何在 Ubuntu 中清除 Ruby Phusion Passenger 的缓存?

我已经尝试重新启动 apache 并且缓存页面仍然出现,所以某个地方必须有一个文件夹。我没有“公共/缓存”,那么我应该看哪些其他地方?是否有一个 URL 标志也可以触发这种效果?

0 投票
56 回答
507545 浏览

javascript - 如何强制浏览器重新加载缓存的 CSS 和 JavaScript 文件

我注意到一些浏览器(特别是 Firefox 和Opera)非常热衷于使用.css.js文件的缓存副本,即使在浏览器会话之间也是如此。当您更新其中一个文件时,这会导致问题,但用户的浏览器会继续使用缓存的副本。

强制用户浏览器在文件更改时重新加载文件的最优雅方法是什么?

理想情况下,该解决方案不会强制浏览器在每次访问页面时重新加载文件。


我发现John Millikinda5id 的建议很有用。事实证明有一个术语:自动版本控制

我在下面发布了一个新答案,它结合了我的原始解决方案和约翰的建议。

SCdF提出的另一个想法是将伪造的查询字符串附加到文件中。(一些 Python 代码自动使用时间戳作为伪造的查询字符串,由pi提交。。)

但是,关于浏览器是否会缓存带有查询字符串的文件存在一些讨论。(请记住,我们希望浏览器缓存文件并在以后的访问中使用它。我们只希望它在文件更改时再次获取文件。)

0 投票
5 回答
14300 浏览

c# - 如何在 C# 中清空/刷新 Windows READ 磁盘缓存?

如果我试图确定驱动器的读取速度,我可以编写一个例程来将文件写入文件系统,然后将这些文件读回。不幸的是,这并不能提供准确的读取速度,因为 Windows 会进行磁盘读取缓存。

有没有办法在 C# / .Net 中刷新驱动器的磁盘读取缓存(或者可能使用 Win32 API 调用),以便我可以直接从驱动器读取文件而不缓存它们?

0 投票
1 回答
3478 浏览

caching - Safari/WebKit 中是否有相当于 Ctrl-Shift-R 的功能?

真正重新加载页面或资源的东西,忽略缓存中可能存在的任何内容。

0 投票
19 回答
235728 浏览

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

背景

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

问题

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

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

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

我的解决方案 - 不工作

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

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

但是,这也不起作用。

笔记

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

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

问题

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

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

0 投票
8 回答
17381 浏览

php - 将 PHP 对象缓存到文件的方法?

在 ASPNET 中,我开始喜欢应用程序和缓存存储。他们太棒了。对于没有经验的人,您可以将数据逻辑对象放入其中,嘿-presto,您只需查询数据库一次即可获取一些数据。

迄今为止最好的 ASPNET 功能之一,IMO。

我已经放弃了 Linux 的 Windows,因此放弃了 webdev 的 PHP、Python 和 Ruby。我最常使用 PHP,因为我开发了几个开源项目,都使用 PHP。

不用说,我已经探索了 PHP 在缓存数据对象方面必须提供的功能。到目前为止,我玩过:

  1. 序列化到文件(一个非常缓慢/昂贵的过程)
  2. 将数据作为 JSON/XML/plaintext/etc 写入文件(读取操作更慢)
  3. 将数据作为纯 PHP 写入文件(读取速度最快,但写入操作相当复杂)

我现在应该强调的是,我正在寻找一种不依赖第三方应用程序(例如 memcached)的解决方案,因为这些应用程序安装在各种场景中,其中大多数没有安装权限(例如:a便宜的共享主机帐户)。

所以回到我现在正在做的事情,坚持文件安全吗? Rule 1在生产服务器安全性一直禁用文件写入,但我真的看不到任何方式 PHP可以缓存,如果它不能写。是否有任何提示和/或技巧来提高安全性?

还有另一种我忘记的持久化文件方法吗?

在“有限”环境中是否有更好的缓存方法?

0 投票
4 回答
9764 浏览

http - 为 REST 请求禁用 Jetty 服务器的客户端缓存

我有一个 REST Java 服务器,使用在 Jetty 上运行的 Jersey 实现。似乎某些浏览器(IE7)在内部缓存了对服务器的所有请求。

我想做的是在来自 REST 服务器的响应中发送某个 HTTP 标头,指示浏览器它不应该缓存该响应,因此下次它需要访问该资源时将再次查询服务器。

关于如何为此配置 Jersey/Jetty 的任何想法?或者配置它的唯一方法是客户端?

0 投票
1 回答
1797 浏览

php - 错误地为 PHP 设置 APC?

我决定安装APC以加快我工作的网站。可悲的是,我发现它已经安装并启用(最初在服务器上工作的开发人员已经继续前进)。

然后我决定检查它的使用情况,看看它是否需要分配更多的内存。这时我发现了一些奇怪的东西。带有此代码的简单文件:

从 apache 提供服务时它不起作用。我得到Error 320 (net::ERR_INVALID_RESPONSE): Unknown error.并且错误日志中没有任何内容。从cl服务器上的 i ,它工作正常。但它只说我的check_apc.php文件已缓存(我正在运行的脚本的名称)。

所以看起来APC没有完全/正确设置。任何人都知道问题可能是什么?

/etc/php.d/apc.ini 的内容:

服务器正在运行CentOS

0 投票
6 回答
582 浏览

optimization - 将文件保存在 OS 块缓冲区中

我需要在操作系统块缓存中保留尽可能多的大文件,即使它比我可以放入 ram 的要大,而且我正在不断地读取另一个非常大的文件。ATM 当我从另一个文件流式读取时,我将从系统缓存中删除大块的大型重要文件。

0 投票
2 回答
370 浏览

model-view-controller - 花哨的 MVC URL 会影响缓存的完成方式吗?

在阅读有关清除 JS 文件缓存的问题的一些答案时,有人指出了http 规范的这一部分。它基本上说 URLS 包含一个?除非给出特定的到期日期,否则不应从缓存中提取。在 MVC 网站(RoR、ASP.Net MVC 等)中很常见的不存在查询字符串的 URL 如何被缓存,并且与更传统的基于查询字符串的 url 的行为有何不同?