1

Codeigniter を使用して作成された非常に AJAX 風のリスト Web ページがあり、登録ユーザーが以前に表示したリストを区別できるようにしたいと考えています。

現在の試行:リストをクリックすると、リスト ID が$.post()サーバーサイド PHP に送信され、自動インクリメントでテーブルに,を(使用してINSERT... ON DUPLICATE KEY UPDATE)挿入します。訪問者が新しい検索を行うたびに、すべての がを介して MySQL テーブルから取得され、ループを介して、以前に表示されたリストの CSS が変更されます。listing_iduser_idview_timestampviewed_idlisting_iduser_id.getJSON()

私の懸念は、この方法がサーバー上であまりにも多くの作業を伴うかどうかです。

  1. ビューをシリアル化すると、各ユーザーの行が 1 行だけ改善listing_idされますか?
  2. 代わりに Cookie (Codeigniter によってデータベースに自動的に保存されますか?) を使用する必要がありますか?
  3. ユーザーが表示したときに、AJAX 経由で表示された新しいリストを挿入します。ただし、表示されたすべてのリスティング ID を含む Cookie が存在しない場合は、表示されたリスティングの ID のリストを 1 回だけ取得します。そうでない場合、新しく表示されたリスティングをサーバーに送信して挿入した後、リスティング ID も Cookie に挿入されます。このようにして、新しい検索を行った後、表示されたリスティング ID のリスト全体をデータベースに継続的に照会する必要はありません。

注: 以前に表示したリストの listing_id に対する AJAX リクエストの推定数については、平均的なユーザーは 20 秒ごとに新しい検索を行います。

4

1 に答える 1

0

この種の機能については自発的に、データベースを使用せず、代わりにクライアント側のソリューションを検討します。たとえば、localStorage を使用して Json をデータとともに保存するか、ブラウザのサポートを拡大したい場合 (または php コードから保存する必要がある場合)、代わりに Cookie を使用します。 JavaScriptからはできません)。この情報をデータベースに保存する必要がある場合でも、ポイント 3 で説明したように、可能な限りクライアントに情報をキャッシュするソリューションを検討します。

于 2012-04-08T10:06:08.637 に答える