2011-12-21 18 views
1

ユーザーがASP.NET MVC 4アプリケーションで認証されないと、ログインフォームが表示されます。認証に成功すると、彼はホームページにリダイレクトされ、MS SQLデータベース内のテーブルの最新データが表示されます。MVC:ログインフォームを表示しながら、データベースからのデータをプリフェッチ

データローディングプロセスを高速化するために、ログインフォームを表示しながら、そのデータベーステーブルのすべてのデータをバックグラウンドでプリフェッチしたいと思います。つまり、ユーザーが自分の資格情報を入力している間は、直ちにビューを提供し、バックグラウンドで先読みを続けたいと考えています。私はTaskThreadオブジェクトを使用しようとしましたが、本当に非同期にロードするデータを取得できませんでした。代わりに、ログインビューは読み込みが完了した後にのみ表示されます。

データを非同期でロードする方法を教えてください。

答えて

1

ユーザーログインが拒否された場合、ログイン画面に当たって別のページのデータをプリフェッチすることは実際には問題にはならないと考えていますが、プリフェッチは無意味です。さらに私は、あなたがページにアクセスしたときに戻って来るものを投入するプロセスを開始することも可能だとは思わない。おそらく、Ninjectのような依存性注入フレームワークを使用し、おそらくシングルトンスコープインスタンスを持っているとします。

ログインしたユーザーに基づいてカスタマイズされたデータですか?ログインしたユーザーに基づいてデータがカスタマイズされておらず、実行された静的クエリの場合は、ASP.NET MVC OutputCache()属性を使用してホームページでこのデータをキャッシュするか、または余裕がある場合はsmall example of it being usedそれをキャッシュする必要がある場合は、私はおそらくSQLテーブルまたはビューに結果を格納し、ちょうど平らな情報のセットを取得することを見て、もちろん複雑なクエリよりもはるかに高速になります私はあなたの時間を費やしていると仮定します。

+0

アプリケーションは、たったの約5人が使用するため、頻繁にヒットされていません。私が話しているデータベーステーブルには、テキストだけで構成される100行以下の行が含まれています。従って、ロードされなければならないデータの量は*本当に*小さいです。私はNHibernateが〜85行を先読みさせるようにしたいので、ユーザが一度認証を終えると、それが使用する第2レベルのキャッシュが読み込まれます。 **ボトムライン:**私は最初のローディングをスピードアップしたいだけです。その後、私はすでに '[OutputCache]'などを使用しています。 –

関連する問題