私は製品ページを持っています。私が持っている場合は、この同じコントローラですべてのビューを追跡するはずのページをキャッシュする方法はありますか?
def show
...
LiveView.add_live_view(@product, request)
...
end
:showアクションには、次のコードを持っている
caches_action :show, :cache_path => (proc do
product_path(params[:id], :user_id => user_signed_in? ? current_user.id : nil)
end)
私はrequest
からIPアドレスをつかむことで、リアルタイムビューを表示しようとしています。だから、私はページに当たるすべてのビューを追跡する必要があります。ただし、ページが既にキャッシュされている場合は、LiveView.add_live_view(@product, request)
メソッドがトリガーされることはありません。
質問があります。私はこの行動をキャッシュするべきですか?もしそうなら、それはどのようにすべきでしょうか?または、この方法のキャッシュを忘れるべきですか?
私は別のキャッシングアプローチを考えてください。助言がありますか?
私はこのルールが好きです。しかし、私は常に 'show'ページをキャッシュするのが最善だと聞いてきました。同じユーザがリロードボタンを押すか、同じページを再度訪問することになると有益です。これについてあなたの考えは何ですか? –
私たちのアプリはHeroku上で動作していることを忘れてしまいました。したがって、アプリケーション層の下にアクセスできるとは思わないでください。 –
まず、何もキャッシュしないことの影響を確認します。また、Webアナリティクスがある場合は、実際にページをリフレッシュする人の数を確認してください。最後に、このページをキャッシュすることを決定した場合は、タイムスタンプをチェックして開始し、何も変更されていない場合は304ステータスを返します。正直なところ、これはほとんどの開発者が忘れていることだと思います。ブラウザのキャッシュはまさにそのためのものです。 –