2012-02-07 6 views
0

私はウェブサイトを開発しています。そのレコードは約6000件あり、私の会社はInternet Explorer 8をデフォルトブラウザとして使用しています。 50秒でデータ全体を読み込みます。だから、私はユーザーがdivの終わりに達するたびにロードデータ関数を実装しようとしていました。Servlet-JSPでスクロールダウンしてデータをロードする

ウェブサイトの構造は基本的にはこのようです。 サーブレット - Jsp。 基本的に特定のjspが要求されると、割り当てられたサーブレットはdoGetを作成し、ユーザーがレコードを挿入/編集/削除するたびにdoPostを実行しますが、常にすべての操作はJSPによって処理されます。

この場合、スクロールするときにロードデータを実装する方法はありますか? (私はできるだけページ内のリフレッシュを使用したくない)。

ps:私はすでにこれを実装する方法ではなくJQueryを使用する必要があります。 =)。

+0

「無限スクロール」と呼ばれるものを実装しようとしています。ここで役に立つプラグインがあります。http://www.infinite-scroll.com/ – ggreiner

答えて

0

この場合、JavaScriptをたくさん使ってページをデザインする必要があります。私が質問から得たのは、6000のレコードを持つテーブルがあるということです。これで、このデータをページに表示します。何かが変更されたときにも、変更内容を画面にもマッピングしたいと思っています。

このため、必要なものの1つは、各行を前面にあるキーと対応付けることです。 AJAXを少し読んで、残りはとてもシンプルです。

固定間隔、たとえば5秒後にサーバーに接続できます。このヒットは変更されたアイテムを返します。ここであなたがページ上に持っていた最大のIDは、サーバーが返すレコードと比較されます。

応答は三つの部分からなります A)) Bを削除 c)は

を挿入編集した あなたはあなたが持っているしたくないかもしれませんかどうかを追跡することはできません与えられた時点での編集を組み合わせ、などを挿入して行くことができます

同じことを追跡するオーバーヘッド。

だから2つだけのブロックA)削除およびb)挿入/ビューを作成するとき、各行は、主キーを含むIDを持つDIVなり

修飾。したがって、divのidは "div23"となり、23は主キーです。

これでレスポンスを反復する必要があります。このソリューションを簡単に実行するには、XMLまたはJSONのいずれかを使用できます。

サンプルレスポンスを取ることができます。

削除のID番号が23,45,97など、挿入/編集が46,1000,6001などのjsonボートを持つ応答。

削除するには、次のように記述するだけです。document.getElementById( "div" + id).innerHTML = "";またはdomモデルから同じものを削除することができます。

同様に、divを取得して同じものを編集できます。 divを取得しないと、最後に行うことができるものを挿入する必要があることを意味します。

ajaxでは、プロトタイプ、道場などのような多くのフレームワークを得ることができます。w3schoolsサイトで見つけることができるAJAXの基本的な例。

私はそれが役に立ちそうです。

+0

正直言って私はちょっと混乱しました。私は本当のためのすべての助けに感謝します。 今、私は新しい、削除、編集機能に興味がありません。 私の唯一の議論と疑問は、どのように表示するのですか...ページが読み込まれたときに20レコード、次にユーザーがスクロールするたびに20レコードを読み込むことができます。私はdiv内のテーブルを使って作業しています。 私の目標は、誰かがスクロールするたびに、ページを更新せずに20個のレコードを読み込む方法でした。または他の簡単な代替手段。 しかし、私はすでにjquery + servler + jspでこのような例をたくさん探していますが、今のところは何も探していません... よろしくお願いします。 とthnks – user1195961

+0

divにデータが含まれています)。今すぐdivで、新しい要素を追加し続ける必要があります。これには2つの選択肢があります。 a)innerHTMLを編集するか、javascriptで要素を追加できます。 javascriptを使ってDOMオブジェクトを作成することができます。 divを作成する例:http://it.toolbox.com/wiki/index.php/Dynamically_Creating_a_Div_in_Javascriptこのdivを親divに追加することができます。 1つは、未使用のdivの束を削除して、ブラウザの負荷を減らすはずのString(I beleive)で置き換える必要があるということです。 – Amit

+0

これで、ユーザーは次の20レコードをスクロールダウンします。ユーザーが遅れを感じないように、次の40個のレコードをロードする方が良いでしょう。 – Amit

関連する問題