私は以前にオンラインニュースポータルを構築しましたが、それは私にとってはうまく機能していますが、ホームページが少し遅いと言う人もいます。考えてみると、その理由がわかります。
サイトのホームページが表示されます
- 見出し
- スポットニュース(サブヘッドライン
- 写真のあるスポット
- ほとんどのニュースを読む(タイトルとして)
- 最もコメントされたニュース(タイトルとして)
- 各ニュースカテゴリから5つのニュースタイトル(スポーツ、経済、地域、健康など、合計11)
現在、これらはそれぞれデータベースへの個別のクエリです。私はtableadaptersデータセットとdatatables(標準のデータアクセスシナリオ)を持っているので、ヘッドラインについては、テーブルアダプターによってデータテーブルを返すニュースクラスのビジネスロジックを呼び出します。それ以降は、データテーブルをコントロールにバインドするだけで使用するか、(ほとんどの場合)オブジェクトがデータテーブルを(ニュースの)リストに変換して、そこから使用します。
上記のそれぞれに対してこれを行うことは、しかしうまくいくようです。少なくとも、大きな負荷はかかりません。しかし、もっと良い方法があるのだろうかと思います。
たとえば、私が上で説明したプロジェクトは非常に動的なWebサイトであり、ニュースは24時間ノンストップで代理店から到着したときに挿入されます。したがって、この場合のキャッシュは適切に聞こえない可能性があります。しかし一方で、地元の新聞のために別の同様のプロジェクトがあることを私は知っています。サイトは1日1回のみ更新されます。この場合:今日挿入されたすべてのニュースアイテムを含むデータテーブルを返すクエリを1つだけ実行し、そのデータテーブルをクエリして、ヘッドライン、スポット、その他のアイテムをサイトのそれぞれの場所に配置できますか?または、周りにもっと良い選択肢がありますか?私は他の人が最も効率的な方法で同様のタスクを実行する方法をたださまよっています。