0

このようなものに対処するための一般的なベストプラクティスは何ですか。

##Post controller

def show
   @post = get_from_memcache
end

##show.html.erb
<div><%= post.body%></div>
<div><%= post.created_at%></div>
<div><%= post.category%></div>
<div><%= Post.favorites_count%></div>

get_from_memcacheは、基本的に有効期限が切れないキャッシュから@postオブジェクトを返します。これは、投稿が作成されると、その本文、カテゴリ、作成場所などが同じままであるためです。

ただし、私の見解では、memcacheから投稿のお気に入り数を収集する別のメソッドfavorites_countを呼び出し、このお気に入りは変化し続けます。

もちろん、これは単純化です。変更されるフィールドがいくつかあります。

ある種のhttpキャッシングを実装する場合、fresh_whenまたはstaleを実行する必要がありますか?私のコントローラーメソッド(show)では、お気に入りの数やその他の動的フィールドを含むetagを使用しない限り、基本的にビューがレンダリングされないため、更新されたお気に入りの数がカウントされます。 。

この状況をどのように管理しますか?だから私はプロキシを利用することができますが、ページの特定の動的フィールドを更新したままにしますか?私が考えることができることの1つは、ページの読み込み後にこれらのフィールドを更新するために他のコントローラーアクションをajaxで呼び出すことですが、それは醜いかもしれません。

他の推奨事項はありますか?

4

1 に答える 1

0

ページキャッシングを使用する場合、実際に実行可能なオプションが1つあります-その番号をajaxでロードします

ただし、そのために Rails スタックを通過する必要はありません。Metal を作成するだけで、非常に高速です。

于 2010-10-12T20:46:31.063 に答える