私は、ユーザーがお互いをフォローできるソーシャルネットワーキングアプリに取り組んでいます。
処理を高速化するために、ユーザーのプレビューと全ページビューにフラグメントキャッシュを追加しました。
良いニュースは、アプリが本当に速くなったということです。悪いのは、フォローボタンに関連するバグが発生し始めたことです。
実際、すべてのユーザーのプレビューと全ページビューには1つのフォローブロックがあり、ユーザーがログインしているか、自分のプロファイルを表示しているか、他のユーザーが既にフォローしていることを確認しているか、他のユーザーがまだフォローしていないかを確認する4つの状態があります。
この問題に対処するために、4つの異なる状態(=ユーザーごとに8つの異なるキャッシュフラグメント)のそれぞれで、各ユーザーのプレビューとフルページビューの異なるキャッシュバージョンを使用することを終了しました。問題はなくなりましたが、これは最適とはほど遠いものだと思わずにはいられません。
次に、動的フラグメントキャッシングに関するRyan BatesのRailscastについて聞いて、考え始めました。
たぶん、ajaxを介してフォローボタンだけをロードできます。しかしその後 ...
- ボタンごとに1つのリクエストを行う必要がありますか?
- たくさんのリクエストを防ぐために、それらをすべて集める必要がありますか?どのように ?
- もっと良い方法はありますか?
どう思いますか ?:)