問題タブ [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.

0 投票する
0 に答える
297 参照

ruby-on-rails-3 - スプリーで構築されたRuby on Railsアプリで、VarnishのフラグメントキャッシングにESIを使用する方法は?

基本的な構文がうまくいきません。ユーザー固有の情報をキャッシュに保存したくありませんが、ページの残りの部分をキャッシュしたいと考えています。Spree 上に構築された Rails アプリでそれを行うための構文を提供してください。

0 投票する
1 に答える
201 参照

varnish-vcl - キャッシュから esi タグを含むページを取得するときに、Varnish が ESI 要求を処理していませんか?

ページのフラグメントをキャッシュしないために ESI を使用しています。フラグメントをキャッシュしないように、vcl ファイルに次の構成を記述しました。

ニスがバックエンドからページ全体を初めて取得するとき、「/fragment」の個別のリクエストを送信し、ページの適切な場所に配置します。ただし、ページを更新すると、ワニスはメインページのみを再要求し、キャッシュでそれを見つけます。次に、このページでesiフラグメントを検索せず、リクエストを送信しません。代わりに、メイン ページのキャッシュ中にメイン ページ自体に格納され、ルックアップ中にそこから取得されます。メインページの残りのコンテンツをキャッシュから提供しながら、メインページのリクエストが行われるたびに、バックエンドからフラグメントを取得する方法を知りたいです。

0 投票する
1 に答える
812 参照

ruby-on-rails-4 - Rails 4フラグメントキャッシュページ全体。モデルのキャッシュを期限切れにする方法

モデルのメイン ページ フラグメントを期限切れにするにはどうすればよいですか?

私のHTMLで

私の投稿モデルでは

これはキャッシュをクリアしません。投稿を作成または更新すると、キャッシュがクリアされません。ActionController::Base.new.expire_fragment('main-page')Rails コンソールで実行すると、「nil」が返されます。ポストモデルのRails.cache.clear代わりに実行すると、機能します。ActionController::Base.new.expire_fragment('main-page')

0 投票する
2 に答える
1927 参照

ruby-on-rails - Rails 4 のさまざまなビューのフラグメント キャッシング

Rails 4 アプリでキャッシングを開始しようとしていますが、キャッシュ キー設定、キャッシュ ヘルパー、および自動有効期限のバージョンが異なるため、少し混乱しています。

では、いくつかの例を挙げて質問させてください。例を意図的に別の質問に移動することはありません。これにより、誰でも一目で微妙な違いを理解できるようになると思います。

1: サイドバーの最新ユーザー

最新のユーザーを表示したい。もちろん、これはアプリ内のすべてのユーザーに同じであり、すべてのページに表示されます。railscastsexpire_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

私が使用しようとしたサンプルコード(それが良いものかどうかはわかりません):

最初は索引ページがあり、ロシア人形はありません。

ここに画像の説明を入力

2 つ目は、コメント付きの番組ページ用のロシア人形です。

ここに画像の説明を入力

0 投票する
2 に答える
65 参照

ruby-on-rails - クエリをキャッシュした後のrails4がまだ実行されている

Rails 4 アプリがあり、キャッシュを実装しようとしています。@profiles_sidebar.first新しいユーザーが作成されたかどうかを確認するためにキャッシュキーを使用します。まだ db クエリがあるため、これで問題ないかどうかはわかりません。これは、キャッシュを期限切れにする必要があるかどうかを確認するための推奨メカニズムですか? 私はうまくやっていますか?

キャッシュを読み取るときのコンソール コード:

0 投票する
2 に答える
429 参照

ruby-on-rails - rails4 キャッシュの命名規則

Rails 4アプリがあります。どういうわけか異なるキャッシュ キーを区別する必要がありますが、命名規則がわかりません。

最初の例:

indexcompleted_tasksおよびincoming_tasksアクションを含むタスクモデルがあります。ページネーションのため、 A は同じインスタンス名 ( @tasks) を持っています。

現在、キャッシュキーは以下のように命名されています。私の質問: 1. キャッシュキー構造は十分ですか? 2. キーのパーツを配列に入れる順序は重要ですか? たとえば、 ?[@tasks.map(&:id), @tasks.map(&:updated_at).max, 'completed-tasks']よりも優れています。['completed-tasks', @tasks.map(&:id), @tasks.map(&:updated_at).max]

completed_tasks.html.erb

tasks.html.erb

incoming_tasks.html.erb

2 番目の例:

の命名規則にも問題がありますrussian-doll-caching

このバージョンで十分でしょうか。それとも、他のページで同様の名前のキャッシュ キーが発生する問題を回避するために、外部と内部の両方のキャッシュ キー配列に文字列を常に配置する必要があります。たとえば、私の例の内部キャッシュとまったく同じページを配置する予定です<% cache(@product) do %>profile#showキーが異なる必要がある場合、内側のキャッシュキーと外側のキャッシュキーに名前を付けるレールの規則は何ですか?

0 投票する
1 に答える
306 参照

ruby-on-rails - rails4 二重入れ子モデル ロシア人形キャッシング

私のrails4アプリには、投稿用に次の構造があります。ユーザーは投稿にコメントでき、コメントに返信を書き込むことができます。ページで自動期限切れキーを使用して russian-doll-caching を使用したいのですが、この場合、どのようにすればよいかわかりません。

この場合の使い方を教えてもらえますか?

モデル:

投稿/index.html.erb

_post.html.erb

_post_comment.html.erb

_post_comment_reply.html.erb

0 投票する
1 に答える
257 参照

ruby-on-rails - Rails 4キャッシュの有効期限が機能しない

Rails アプリでネストされたキャッシュを使用しようとしていますが、キャッシュ キーがuser.profile.full_name変更されても有効期限が切れません。そのため、ユーザーが自分の名前を変更しても、表示される full_name_profile_product.html.erbは古い名前のままです。

キーを変更するにはどうすればよいですか?

プロファイル/show.html.erb

_profile_products.html.erb

_profile_product.html.erb

0 投票する
1 に答える
1162 参照

ruby-on-rails - フラグメントキャッシングからいくつかの部分を除外するレール

認証に pundit gem を使用する Rails 4 アプリがあります。以下のコードのように russian-doll フラグメント キャッシングを行うと、承認に使用される条件ステートメントもキャッシュされますが、これは良くありません。編集/削除ボタンはpost.user.

これを回避する良い方法は何ですか? キャッシュをより小さな部分に分割する必要がありますか、またはキャッシュの一部を除外する方法はありますか? この場合のレール規約は何ですか?

index.html.erb

_post.html.erb

0 投票する
1 に答える
341 参照

ruby-on-rails - Railsフラグメントキャッシングが機能しない

Web サイトのパフォーマンスを高速化するためにフラグメント キャッシュを追加しようとしていました。今、developmentモードでテストしたので、これを変更します

そして、erb

しかし、うまくいかないようです。ページを更新するたびに、ターミナルにクエリが再び表示されました。

初めてクエリを実行するのは 1 回だけだと思っていましたか、それともキャッシュの概念を誤解していましたか?