私はいくつかの機能を実行するASP.NETサーバーベースのシングルページWebアプリケーションを持っています。そのうちの1つはサードパーティAPIからのデータアクセスを必要とします。アプリケーションは、このデータを使用してユーザーに提案を提供します。データベースのバックグラウンドでの
ユーザーがAPIからのデータとは独立した単純なアクションをページ上で実行しようとすると、ページが読み込まれるまでにかなりの時間がかかります。結局のところ、アプリケーションはページをロードするたびにAPIを呼び出します。これを修正する必要があります。
低負荷のフラストレーション要因を避けるために、私はクライアント側のスピードを上げるためにjQueryやAJAXのようなツールに頼ることができたことを知っています。しかし、他のページメソッドはすばやく実行されるため、1つのメソッド呼び出しだけに責任がある場合は、ページ上の他のすべてをクライアントサイドコードに変換する際の値は表示されません。
外部APIからのライブデータは必ずしも必要ではないので、x
分後にポストバックまたはページロードのデータを送信するタイマーメソッドを一緒に送信するのが自然な本能です。しかし、このアプローチについては、何かがあまりにも粗すぎるようです。この目標を達成するためのよりエレガントな方法はありますか?
APIデータは、APIとWebページの仲介者として機能するデータベースに格納されます。アプリケーションは、x
分(ページのロードとは別に)毎にAPIを呼び出してから、ユーザーのアクションやページの読み込み時にデータを提供できますか?時間のかかるAPIメソッドをバックグラウンドでアプリケーションを妨害することなく実行できますか?
Way広すぎます。ここでは特定の質問のみが許可されています。 –
はい、タスクを実行するバックグラウンドプロセスを持つことは可能です。 Googleの検索では、最新のASP.NET Webアプリケーションで使用できるアプローチが1つまたは2つ表示されますが、個人的には、個別のアプリケーションを完全に持ち、WebアプリケーションをそのままWebアプリケーションにするという、 Windowsサービスやスケジュールされたコンソールアプリケーションのようなものは、外部サービスからデータを取得し、定期的にデータベースを更新することができます。 – David