2011-08-03 9 views
0

私は、ユーザーの投稿を表示するレールアプリを持っています。ユーザーの投稿は、さまざまな方法で並べ替えられ、ページ分けされ、分類されます。私はこれらのすべてのクリックをajaxでやっています。rails caching + ajax

ただし、カテゴリまたはsortbyパラメータまたは新しいページをクリックするたびに、ENTIRE要求を再度読み込み、指定された方法でそれを返します。私の最初の結果をキャッシュする方法はありますか?それで、並べ替え、改ページ、素早く分類しますか?

+0

ビューとコントローラの外観はどうですか?私はそれらを見れば、あなたが答えを得るのがずっと速くなると思います。また、「全部」リクエストではどういう意味ですか?それは非効率的なクエリやページのレンダリングを行うSQLですか? –

+0

私たちは、位置、業界、プロフィールに設定された特定のプリファレンスなどを含む多くの基準に基づいて、クライアントのための高度なマッチングテクニックを行います。これは、新しいパラメータが読み込まれるたびにすべての処理を行います(たとえば、 '?page = 2'はそれをもう一度やり直します)。基本的には、すべてのクエリはコントローラで実行され、スコアリングはモデルで実行されます。 – stewart715

+0

あなたはRailsのキャッシングガイドを読みましたか? http://guides.rubyonrails.org/caching_with_rails.htmlあなたのページを構成するSQLやフラグメントもキャッシュできるようです。 –

答えて

0

パフォーマンスを向上させるために、より良い方法はmemcacheを使用することです。 memcacheがインストールされ、あなたのrailsアプリケーションに実装されている場合は、実際にデータベースに再度クエリするのではなく、一定の時間キャッシュすることができます。代わりにメモリから直接フェッチするので、パフォーマンスが大幅に向上します。 https://github.com/nkallen/cache-moneyをチェックしてみてください。

+0

クエリをキャッシュし、そのクエリで多くの操作をキャッシュすることはどうですか?それは可能ですか? – stewart715

0

これは、AJAXと非AJAXのjavascript実装を使用することの問題です。

Ajaxを使用しているときは、このアクションでサーバーからの情報やロジックが必要ですか?答えがいいえで、クライアントブラウザに既にロードした情報だけを使用して回答を行うことができる場合は、Javascriptを使用して実装してください。

この場合、javascriptソート用のソリューションはたくさんあります。たとえば、単純な表のような並べ替え(表が見えない場合)が必要な場合は、このプラグインのようなものを使用できます。http://yoast.com/articles/sortable-table/

さらに詳しいカスタムソリューションをお探しの場合は、javascriptを手書きで書くことができます、この投稿:Sort <div> elements using jQuery良い出発点を与える。

希望に役立ちます!