- 締切済み
新着情報機能について
いつも参考にさせて頂いています。 現在eclipseにて新着情報機能を作成中です。 ■現在考えている処理順 ・ブラウザより日程・タイトル・内容を入力 ・親ファイル(新着情報一覧画面(ファイル名:….html)を削除 ・子ファイルのHTML生成(ファイル名:「日付.html」) ・親ファイルを生成 ⇒ 日付の降順でソートする必要があります。 ※わかりにくいと思いますので補足しますと、ここで言う「子ファイル」とは実際の新着情報の内容を出力するHTML、親ファイルというのは子ファイルのリンクをはっている一覧ファイルです。 今までDBでしか作ったことがなかったのでちょっと手間取っています。 親ファイルを一度削除しているため、削除する前に内容を読み込み、子ファイル生成後、親ファイル生成時に読み込んだ内容と画面から入力された新しい新着情報を照らし合わせてソートしないとだめ?と考えているのですが、通常はもっとシンプルなやりかたでできるんでしょうか? 新着情報って結構使われてるアプリだと思いますのでみなさんの意見を参考にさせていただきたいと思っています。 どうか宜しくお願いします。 通常新着情報を作成する場合、どういう手順で処理を行うか?というところに焦点をあてていただけると助かります。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- PED02744
- ベストアンサー率40% (157/390)
回答としてはANo.1でされていますが、 「どういう手順で処理を行うか?というところに焦点をあてて」 との事ですので、その辺も踏まえて。 まず、基本的にこの手のシステムの場合、サーブレットを使うのが普通かな?と思います。 そして「DB内に蓄えられた新着情報」がそもそも存在することが前提になるかとおもいます。 なので、 (1)ユーザが新着情報取得サイトにログイン(ログイン不要ならクッキーを使うとか) (2)そのユーザが最後にログインした日時を取得(ログイン不要ならクッキー情報を使うとか) (3)最終ログイン日時から現在までの間の「新着情報ID」を取得 (4)(3)で取得した新着情報ID一覧を動的にJSPに出力。(servletにIDをPOSTできるようにしておく) (5)(4)で表示されたページでクリックされたIDに対応した新着情報を別ページに表示する (6)DB内のユーザ最終ログイン日時を更新する こうすれば、人によって最後にログインした日が違っても「その人にとっての新着情報」が表示されるのでよいのではないかと。
新着情報というのは、普通はどこかに全データを保管しておいて、そこから必要なものをピックアップして表示をするんじゃないでしょうか。普通、こうしたものは「過去の履歴」みたいなものが用意されますから、データを保管している元本は決して消去しないと思います。そこから表示する項目をピックアップして表示用データファイルを作成するなりし、それを元に表示を作成する。更新される場合も消去するのは表示用データファイルだけで、元本のデータファイルは新規の情報を追記するだけでデータの削除は一切行わない。そういう感じだろうと思います。 私が今まで作ったものでは、各データごとに表示用のフラグ(ON/OFFのものもあれば、表示順の番号を数字で保管するものもある)を用意してあります。管理画面でデータの入力や編集などを行い、どの項目を表示するかを設定するようにしてあります。そして、トップの更新を実行したら、保存された元本のデータファイルからフラグがたっているデータだけをピックアップしてまとめ、それを表示用データファイル(これを元に別プログラムからHTMLを生成する場合もあるし、HTMLレンダリング済みのファイルを書き出す場合もある)に保存します。実際の表示は、この表示用ファイルを元に行うわけです。元本データファイルは一切使いません。 ちなみにデータの表示は、以前はiframeなどで埋め込んでましたが、クライアントがより柔軟なレイアウトを要求することが多くなったため、今はAjaxで読み込み表示させるようにしています。このほうがダイナミックに表示領域が作れてやりやすいですね。