2016-08-08 3 views
0

最新のものから古いものへの逆順で動作するコメントシステムを作成しようとしていますが、論理と私はいくつかの助けが必要です。「その他のコメントを読み込む」リンク無限のスクロールページネーションを使用してデータを逆順に取得

のは、私のデータベースが今4つのコメントの合計が含まれているとしましょう:

['comment1', 'comment2', 'comment3', 'comment4']; 

はのは、クライアントが最新の1件のみに発注、2当たりコメント2をロードするとしましょう。だから私は、最初から2つのコメント(制限2)を返すようにサーバーに要求を送る(オフセット0)。これまでのところ、次のようになります。

['comment3', 'comment4'] 

これら2つのコメントはクライアントに表示されていますが、別のユーザーがデータベースにコメントを追加しました。それは次のようになります。クライアントの要求はより多くのコメントをロードするときに

['comment1', 'comment2', 'comment3', 'comment4', 'comment5']; 

、それが限界2を要求します、2をオフセット、以下れるであろう。ここでは

['comment2', 'comment3']; 

は私の問題です。コメント3はすでにロードされており、クライアント側で複製されます。コメント5は決して読み込まれません。

これはどうやって正しく処理できるのですか?コメントの数が変化すると、オフセットを管理するのが難しくなります。

私はオフセットの代わりに日付ごとのコメントを得ることも考えていましたが、かなり複雑になりました。

これを管理する最適なソリューションは何でしょうか?あなたは次のあなたが別の結果を達成するために、比較を微調整することができ、コメント1と2を表示したいと仮定し

SELECT * FROM comments WHERE id<x LIMIT 2 OFFSET 2 

(:

おかげ

+0

最後のコメントのdatetimeまたはidをHTMLまたはJavascript値として保存できます。コメントをロードすると、公開された* old *および* new *コメントをサーバーに送信することができますその日時またはIDの後。 –

答えて

0

のような何かを行う、その後、コメント3者のIDを追跡します)

+0

これは、コメント1と2についてはうまくいくが、コメント5があることをどのように知ることができるだろうか? – alexmngn

+0

良い質問(私が正しく理解すればプログラミングのUIよりもUIの方が多分でしょうか?)多くのサイト(Tumblrが気になる)はコメント5を気にしていないようです。他の人が「新しいコメントを見る」ボタン(StackOverflow)を表示しているのを見たことがあります。 FacebookとInstagramは最新のものをいくつか表示して、古いものよりも最新のコメントに優先順位をつけて上方に改ページします。他のサイトでは投票を許可し、そのように優先順位を付けます。あなたが望むものによって異なります。 –

+0

'x'とは何ですか?この値はどのように宣言されていますか? –

関連する問題