问题标签 [fragment-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.
ruby-on-rails-3 - 如何在 Ruby on Rails 应用程序中使用 ESI 在 Varnish 中进行片段缓存?
基本语法对我不起作用。我不想将用户特定信息存储在我的缓存中,但想缓存页面的其余部分。请在基于 Spree 的 Rails 应用程序中提供语法。
varnish-vcl - 从缓存中获取包含 esi 标签的页面时,清漆不处理 ESI 请求?
我使用 ESI 不缓存页面片段。为了不缓存我的片段,我在 vcl 文件中编写了以下配置:
当 varnish 第一次从后端获取整个页面时,它会发送单独的“/fragment”请求并将其放在页面的适当位置。但是在刷新页面时,varnish 只对主页进行请求,并在缓存中找到它。然后它不会在此页面中查找 esi 片段,也不会发送请求。相反,它在缓存主页时存储在主页本身中,并在进行查找时从那里获取。我想知道如何在每次请求主页时从后端获取片段,同时从缓存中提供主页的其余内容。
ruby-on-rails-4 - Rails 4 Fragment Cache Entire Page. How to Expire Cache In Model
How do I expire the main-page fragment in a model?
In my HTML
In my Post Model
This doesn't clear the cache. If I create or update a post, the cache doesn't clear. If I run ActionController::Base.new.expire_fragment('main-page')
in rails console it returns 'nil'. If I run Rails.cache.clear
instead of ActionController::Base.new.expire_fragment('main-page')
in the post model, it works.
ruby-on-rails - rails 4片段缓存用于不同的视图
在我的 rails 4 应用程序中,我尝试使用缓存,但由于缓存键设置、缓存帮助程序和自动过期的不同版本,我有点困惑。
所以让我通过几个例子来问这个问题。我不会故意将示例移至不同的问题,因为我觉得这样任何人都可以一眼就理解细微的差异。
1:侧边栏的最新用户
我想显示最新的用户。这对于应用程序中的所有用户当然是相同的,并显示在所有页面上。在 railscasts 我看到了一个类似的例子,它通过调用expire_fragment...
控制器而过期。但根据其他资源,这应该会在某些事情发生变化时自动过期(例如新用户注册)。所以我的问题是:我是否正确设置了密钥并且它会自动过期?
_sidebar.html.erb(显示在侧边栏的所有页面上)
_users_sidebar.html.erb
2:产品展示页面
我想展示给定的产品(仅在展示页面上)。这对所有用户来说都是一样的,但是因为有更多的产品,所以有更多的版本。问题又是一样的:我是否正确设置了密钥,它会自动过期吗?
产品/show.html.erb
3:产品/索引(用 will-paginate gem 分页)
在这里,我想一次缓存分页给定页面上的所有产品,因此产品被缓存在块中。这对所有用户也是一样的,并且只会显示在products index page
. (稍后我想russian-doll-caching
在此页面上为单个产品实施。)我的问题:我这样做是否正确,它会自动过期吗?
产品 index.html.erb
_product.html.erb
我尝试使用的示例代码(不确定它是否好用):
首先是索引页,没有俄罗斯娃娃。
其次是带有评论的展示页面的俄罗斯娃娃。
ruby-on-rails - 缓存查询后的rails4仍然运行
我有一个 rails 4 应用程序并尝试实现缓存。我使用@profiles_sidebar.first
缓存键来检查是否创建了新用户。我不确定这是否可以,因为仍然有一个数据库查询。这是检查缓存是否需要过期的首选机制吗?我过得好吗?
读取缓存时的控制台代码:
ruby-on-rails - rails4 缓存命名约定
我有一个 Rails 4 应用程序。我必须以某种方式区分不同的缓存键,但不知道命名约定。
第一个例子:
我有一个带有index
,completed_tasks
和incoming_tasks
动作的任务模型。@tasks
由于分页,A 具有相同的实例名称 ( )。
目前缓存键的名称如下所示。我的问题: 1. 缓存键结构是否足够好?2. 我将键的各个部分放入数组中的顺序是否重要?例如[@tasks.map(&:id), @tasks.map(&:updated_at).max, 'completed-tasks']
比['completed-tasks', @tasks.map(&:id), @tasks.map(&:updated_at).max]
?
完成任务.html.erb
任务.html.erb
incoming_tasks.html.erb
第二个例子:
我也对以下命名约定有疑问russian-doll-caching
:
这个版本是否足够好,或者我总是应该在外部和内部缓存键数组中放置一些字符串,以避免其他页面上类似命名的缓存键出现问题。例如,我计划放置与我的示例中的内部缓存完全相同的页面<% cache(@product) do %>
。profile#show
如果键必须不同,那么rails约定将内部缓存键命名为外部缓存键是什么?
ruby-on-rails - rails4 双嵌套模型俄罗斯娃娃缓存
我的 rails4 应用程序中的帖子具有以下结构。用户可以对帖子发表评论,并且可以在评论中写下回复。我想在页面上使用带有自动过期键的俄罗斯娃娃缓存,但我不知道在这种情况下我应该怎么做。
sby 能告诉我在这种情况下如何使用它吗?
楷模:
帖子/index.html.erb
_post.html.erb
_post_comment.html.erb
_post_comment_reply.html.erb
ruby-on-rails - rails 4缓存过期不起作用
在我的 Rails 应用程序中,我尝试使用嵌套缓存,但我的缓存键在user.profile.full_name
更改时不会过期。因此,当用户更改他/她的姓名时,显示的全名_profile_product.html.erb
仍然是旧的。
我应该如何更改密钥?
个人资料/show.html.erb
_profile_products.html.erb
_profile_product.html.erb
ruby-on-rails - rails 从片段缓存中遗漏了一些部分
我有一个使用 pundit gem 进行授权的 rails 4 应用程序。如果我像下面的代码那样做俄罗斯娃娃片段缓存,用于授权的条件语句也会被缓存,这不好,因为编辑/删除按钮应该只适用于post.user
.
解决这个问题的好方法是什么?我应该将缓存分成更小的部分还是有办法排除缓存的某些部分?在这种情况下,rails 约定是什么?
index.html.erb
_post.html.erb
ruby-on-rails - Rails 片段缓存不起作用
我试图添加片段缓存以加快网站性能。现在,我在development
模式下测试了它,所以我改变了这个
而在erb
但是,它似乎不起作用。每次我刷新页面时,它都会在终端中再次显示查询。
我以为它只会在第一次查询一次,还是我误解了缓存的概念?