问题标签 [page-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 投票
4 回答
1591 浏览

ruby-on-rails - Rails 的页面缓存与 HTTP 反向代理缓存

我一直在赶上Scaling Rails的截屏视频。在第 11 集中介绍了高级 HTTP 缓存(使用反向代理缓存,如 Varnish 和 Squid 等),他们建议仅在您已经用尽 Rails 应用程序中的页面、动作和片段缓存的可能性后才考虑使用反向代理缓存(以及 memcached 等,但这与这个问题无关)。

我不太明白的是,使用 HTTP 反向代理缓存如何为已经使用页面缓存的应用程序提供性能提升。为了简化问题,假设我在这里谈论的是单个主机。

这是我对这两种技术如何工作的理解(也许我错了):

  • 使用页面缓存,Rails 进程最初会被命中,然后生成一个静态 HTML 文件,该文件由 Web 服务器直接为后续请求提供服务,只要该请求的缓存有效。如果缓存已经过期,那么 Rails 会再次被命中并重新生成静态文件,更新的内容为下一个请求做好准备

  • 使用 HTTP 反向代理缓存,当代理需要确定内容是否过时时,Rails 进程就会受到影响。这是使用各种 HTTP 标头完成的ETag,例如Last-Modified等。如果内容是新鲜的,那么 Rails 会使用 HTTP 304 Not Modified 响应代理,并且代理会将其缓存的内容提供给浏览器,或者更好的是,使用自己的 HTTP 304 响应. 如果内容是陈旧的,那么 Rails 将更新的内容提供给缓存它的代理,然后将其提供给浏览器

如果我的理解是正确的,那么页面缓存不会导致 Rails 进程的命中率降低吗?没有那么多来回来确定内容是否过时,这意味着比反向代理缓存更好的性能。为什么你可以结合使用这两种技术?

0 投票
3 回答
273 浏览

ruby-on-rails - Rails 中的定时页面缓存

在我正在处理的项目中,我从控制器中的外部 API 请求数据,然后将其显示在视图中。我最近开始遇到由于速率限制而引发的异常,这是由于对 API 的过度调用引起的。为了解决这个问题,我假设我需要实现某种缓存系统。我一直在阅读rails中的页面缓存,它似乎并没有解决我的问题,因为我没有使用我自己数据库中的模型。所以,我想知道是否有一种简单的方法可以定时缓存页面,以便每隔一段时间通过 API 请求新数据。

希望这是有道理的——我对 Ruby on Rails 还很陌生,而且我以前从未使用过任何类型的缓存系统。

0 投票
7 回答
3502 浏览

ruby-on-rails - Rails 页面缓存和闪存消息

我很确定我可以对我网站的绝大多数内容进行页面缓存,但阻止我这样做的一件事是我的 Flash 消息不会显示,或者它们会在错误的时间显示。

我正在考虑的一件事是将 Flash 消息写入 cookie,读取它并通过 javascript 显示它,并在显示消息后清除 cookie。有没有人成功做到这一点或有更好的方法?

谢谢。

0 投票
1 回答
210 浏览

ruby-on-rails - 带有页内管理的 Rails 页面缓存

我很想在我运行的 Rails 站点上使用页面缓存。每个页面上的信息大多是不变的,但是需要运行以收集信息的查询很复杂,并且在某些情况下可能很慢。使用页面缓存的唯一障碍是管理界面内置在主站点中,因此可以在不离开感兴趣的页面的情况下执行管理操作。

我正在使用 Apache+mod_rails(乘客)。当当前用户具有会话变量或名为“admin”* 的 cookie 时,是否有办法向 Apache 指示应忽略 .html 文件?session 变量不需要由 Apache 评估有效性(因为在这种情况下它将由 Rails 评估)。

0 投票
2 回答
878 浏览

ruby-on-rails - 如何在 Rails 的功能测试中启用页面缓存?

是否可以为功能测试打开页面缓存?以下没有奏效:

提前致谢

德布

0 投票
2 回答
5000 浏览

ruby-on-rails - 如何缓存渲染:json

我有一个返回 json 输出的控制器索引操作。

我必须在这里使用什么类型的缓存。“页面缓存”对此是否有意义。

还是我必须像下面那样做动作缓存

0 投票
1 回答
791 浏览

ruby-on-rails - Rails Page Caching with a hits/views counter。如何?

我想使用 Rails 页面缓存来加速遇到重负载的应用程序。但我还需要计算所呈现对象的点击次数/观看次数。所以我有一个模型“文章”,它有一个独特的点击计数器方法(通过 IP),每次用户点击显示操作时都会调用它。这不适用于缓存,所以我想知道解决这个问题的正确方法。计数器无需显示实时结果。

思念至今:

  • 使用 Cron 和 Rake 任务分析 log/production.log 文件
  • 写入自定义日志(如何?使用 nginx)

感谢您提供任何意见、想法或最佳实践示例!

0 投票
1 回答
2086 浏览

asp.net - 在用户控件中关闭页面级缓存

我有一个定义了以下缓存的页面:

我在该页面中有一个我不想缓存的用户控件。我怎样才能关闭它只是为了那个控制?

0 投票
1 回答
1568 浏览

parameters - Extra params in Rails 3 routes and resources

The new rails routes are great in many aspects, but I am looking for the best way to achieve page caching with pages and formats like I had in rails 2.x and am coming up short

I have many possible desired routes of the basic formulas:

Example routes:

In English:

I used to be able to do this with a bunch of named routes:

but this seems wrong in Rails 3 and I think I am missing something that can solve my routing woes efficiently. How can i achieve these routing patterns with Rails 3 routing?

0 投票
1 回答
1702 浏览

zend-framework - 如何在 Zend Framework 中缓存布局内容

您将如何在 Zend Framework 中实现布局内容的缓存?

layout.phtmlI do:$this->layout->content中,我希望缓存此变量的内容。布局中的其他小部件是实时的(或以其他方式缓存)。

最好的选择是:

  • 静态缓存(最快)
  • 页面缓存

我的页面已经有唯一的页面 id ( canonical),所以它可以用作页面缓存标签。

可能看起来我必须重载__get布局的属性。

我正在尝试做一些类似于 SO 布局的事情(顶部的用户面板,为所有人缓存)。
我认为,网站应该在没有 JavaScript 的情况下工作。