问题标签 [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 回答
695 浏览

caching - 如何在 ColdFusion 中正确实现共享缓存?

我已经构建了一个 CFC,旨在用作一个动态的、老化的缓存,用于几乎所有值得缓存的东西。LDAP 查询、函数结果、数组、对象,应有尽有。任何需要时间或资源来计算并且需要不止一次的东西。我希望能够做一些事情:

  • 在应用程序之间共享 CFC
  • 定义缓存的范围(仅限服务器/应用程序/会话/当前请求)
  • 在同一个请求中同时使用不同的缓存实例
  • 使用缓存组件独立于 CFC
  • 一般遵守常识(解耦、封装、正交性、锁定)

我当然会为每个不同的任务使用不同的缓存实例,但我希望能够跨应用程序使用相同的 CFC。缓存本身(还有什么)是缓存实例私有的结构。当范围本身可能发生变化时,我将如何正确实现缓存和锁定?

对于锁定,我目前使用命名锁('CacheRead', 'CacheWrite'),这是安全的,但让我觉得很奇怪。为什么我想要一个服务器范围的锁,比如说,一个仅限会话的操作?(是的,也许这学术性的,但无论如何。)

当我想要应用程序级缓存时,将 APPLICATION 范围作为参考传递似乎也是错误的做法。有没有更好的办法?

0 投票
6 回答
1625 浏览

php - 使用可变项创建两遍 PHP 缓存系统

我想实现一个两遍缓存系统:

  • 第一遍生成一个 PHP 文件,其中包含硬编码的所有常见内容(例如新闻项目)。然后数据库有一个缓存表来链接这些页面(例如“index.php page=1 style=default”),数据库还存储一个uptodate字段,如果为false,则导致第一次通过在下一次页面重新运行被查看。

  • 第二遍填写次要细节,例如某件事(?)是多久以前,以及诸如“您以...登录”之类的可变项目。

但是我不确定一个有效的实现,它支持缓存和非缓存(例如,搜索)页面,没有很多代码和几个查询。

现在每次加载页面时,PHP 脚本都会运行重新生成页面。对于像搜索这样的页面,这很好,因为大多数搜索是不同的,但对于其他页面,例如索引,每次点击几乎相同,但会生成大量查询并且是相当长的脚本。

问题是页面的某些部分确实会根据每个用户进行更改,例如“您以...登录”部分,因此仅保存生成的页面仍会导致 10,000 个几乎相同的页面。

主要关注的是减少服务器上的负载,因为我在共享主机上,此时无法升级,但该站点正在使用服务器的相当大一部分 CPU + 对 MySQL 施加了相当大的负载服务器。

因此,基本上最大限度地减少每个页面请求必须完成的工作量,而不是一直在索引上重新生成诸如新闻项目之类的东西似乎是一个好的开始,相比之下,搜索是一个静态页面少得多的页面。

我实际上考虑将新闻项目硬编码为纯 HTML,但这意味着在多个地方维护它们(因为它们可能用于搜索并且评论位于专用于该新闻项目的页面上(即 news.php)等) .

0 投票
8 回答
12085 浏览

.net - 可以在 ASP.NET 应用程序之外使用 HttpRuntime.Cache 吗?

Scott Hanselman说是的。

将 System.Web 添加到您的非 Web 项目是让人们恐慌的好方法。另一个是在 C# 应用程序中添加对 Microsoft.VisualBasic 的引用。不过,两者都是合理且非常有用的事情。

MSDN说不

Cache 类不适合在 ASP.NET 应用程序之外使用。它是为在 ASP.NET 中使用而设计和测试的,以便为 Web 应用程序提供缓存。在其他类型的应用程序中,例如控制台应用程序或 Windows 窗体应用程序,ASP.NET 缓存可能无法正常工作。

那我应该怎么想?

0 投票
4 回答
1390 浏览

asp.net - 分布式缓存/会话我应该转向哪里?

我目前正在研究分布式缓存解决方案。

如果钱不是问题,你会推荐哪个?

0 投票
3 回答
7788 浏览

hibernate - 自动查询缓存失效

我试图了解休眠查询缓存的真正工作原理。我现在看到的是,当我将新实体插入数据库时​​,Hibernate 不会自动更新其二级缓存(尽管我只使用 Hibernate 调用)。我发现让它工作的唯一方法是在插入新实体后手动清理缓存。

这是更具体的例子。我有一个名为 Container 的持久实体,它可以有许多项目。我想缓存所有项目:

我注意到的问题是,当我:

1)从db中读取一些Containers到内存中(连同对应的item)

2) 为选定的容器插入新项目

3)重复第一步
,然后在第三步中我看不到我在第二步中插入的项目。只有在插入新项目后手动清理缓存时,我才会看到它们:

我的直觉告诉我,Hibernate 应该自动执行这样的缓存失效。有没有人看到它工作?我做错了什么还是不支持?

提前感谢您的回答。问候汤姆

0 投票
3 回答
2407 浏览

caching - 经典asp中应用程序对象的大小限制是多少?

我正在创建一个使用应用程序对象来存储页面的 ASP 脚本。我心中的问题是这个对象是否有大小限制。有人知道吗?

0 投票
5 回答
4108 浏览

linux - 如何在 Linux 上从系统缓存中驱逐文件?

运行性能测试时,文件系统缓存命中或未命中会显着影响测试结果。因此,通常在运行此类测试之前,使用的文件会从系统缓存中逐出。如何在 Linux 上做到这一点?

说明:如果可能,该解决方案不应要求 root 权限。

0 投票
6 回答
19432 浏览

caching - 创建 etag 的最佳方法是什么?

以编程方式为网页生成 etag 的好方法是什么,是否推荐这种做法?一些网站建议关闭 etag,其他网站建议手动生成它们,还有一些建议保持默认设置处于活动状态 - 这里最好的方法是什么?

0 投票
4 回答
31152 浏览

javascript - JavaScript:如何强制 Image() 不使用浏览器缓存?

如果我在浏览器中手动加载 nextimg URL,每次重新加载时它都会提供一张新图片。但是这段代码每次迭代都会显示相同的图像draw()

如何强制 myimg 不被缓存?

0 投票
14 回答
172122 浏览

jquery - 停止缓存 jQuery .load 响应

我有以下代码在 URL 上发出 GET 请求:

但返回的结果并不总是反映。例如,我在响应中进行了更改,吐出堆栈跟踪,但是当我单击搜索按钮时堆栈跟踪没有出现。我查看了控制 ajax 响应的底层 PHP 代码,它具有正确的代码,直接访问页面显示了正确的结果,但 .load 返回的输出是旧的。

如果我关闭浏览器并重新打开它,它会运行一次,然后开始返回过时的信息。我可以通过 jQuery 控制它还是需要我的 PHP 脚本输出标头来控制缓存?