0

リアルタイム リストの正しいページ付けを維持するための標準的な方法があるかどうか疑問に思っています。たとえば、スタック オーバーフローで 2 ページに移動し、1 ページを見ている間に新しい質問が送信された場合、1 ページを見始めたときと同じように 2 ページを維持するにはどうすればよいですか?

多くの場合、人々は LIMIT を使用して SQL クエリを実行するだけですが、これではページ 1 がどこで終了し、ページ 2 が開始するかを追跡できません。

最後に見たレコードのIDなどを追跡することでできると思います。

4

2 に答える 2

3

ほとんどのユーザーはこの動作に慣れており、それが起こることを期待していると思います. 次のページに移動して、直前のページの最後にあった項目が現在のページの最初の項目であることがわかると、新しい項目が追加されたためだと気付くでしょう。ページをブラウズしているときに新しいコンテンツがいつ追加されたかを知るために、以前はユーザーとしてこの動作に依存していたことを私は知っています.

したがって、これを行う必要はないというのが私の意見です。

于 2009-01-29T06:11:03.130 に答える
1

ページ分割されたすべての Web UI に対して、この (要求された) 動作を行います。(私は実際にSOでそれを求め、それを断りました-しかし、現在の改ページは面倒で予想外だと思います-「次へ」を押して、最初のn個のアイテムを前のページの最後のアイテムにするのは嫌いです)。

秘訣は、リストを項目 1 の直前と、見ているページの最後の項目の直後に配置するのに十分なキー情報を (通常は非表示の変数に) 保持することです。次に、前のページと次のページのリンクが、送信時にその情報を提供します。事実上、「前のページ」と「次のページ」キーを保持します。これは、挿入と削除に対して直感的に機能します。

心に留めておくべきことの 1 つは、ページ 1 の更新 (SO のように最新のアイテムが最初のリストであると仮定) は、(a) 「前の」リンクが非表示の場合はアクティブにするか、(b) リストを一番上から更新する必要があることです。 、追加されたアイテムを含む。つまり、「更新」は常に最初の項目から包括的にページを再表示しますが、ページの最初の項目がリストの最初の項目でもあり、新しい項目がある場合は、リストの先頭から再表示します。リストには通常、「最初のページ」、「前のページ」、「更新」、「次のページ」、「最後のページ」への標準的なリンクがあります。

新しいアイテムを表示するための代替手段は、常に前のリンクを保持し、ページ全体またはリストの一番上のうち小さい方をバックアップすることです。これが、ユーザーが新しいアイテムを表示する方法です (ただし、前/次を非表示/無効にすることを好みます)。前および/または次のアイテムがない場合)。

于 2009-01-29T07:33:42.060 に答える