2009-07-26 14 views
0

私は非常に単純なデータベースに基づいてASPページを持っています。それはおそらく30レコードと多分12データフィールドの単一のテーブルを参照し、私は毎週新しいデータベースをアップロードしているので、すべてが素晴らしい作品です。aspページへのデータの更新はどのように継続しますか?

私はデータベースに新しいデータをアップロードし、画面をリフレッシュしなくても20〜30秒ごとにページに自動的に表示するという特別な状況があります。私は1000人の同時ユーザーがデータにアクセスすることを期待しています。

私は手動でデータベースをftp経由でアップロードしていますが、これは明らかにこのタイムラインでは機能しませんし、データベースが置き換えられている間もエラーページの危険性があります。

誰も私にこのシナリオを設定する正しい方向を指摘できますか?役に立つかもしれません

その他の詳細: データベースはISPによってホストされているWindowsプラットフォーム上で実行しているAccessデータベース(しかし、必要であれば、私は別の形式に変更することができます) ではなく、私自身のサーバー

答えて

0

あなたがする必要がありますこれを行うためにjavascriptを知っている。あなたは?

javascriptでsetTimeout()メソッドを使用して、30秒ごとに更新されたコンテンツのリクエストをサーバーに送信します。このリクエストはAJAXリクエストになります。

詳細については、http://www.asp.net/ajax/をご覧ください。

+0

いいえ、私は実際にjavascriptを知らないのですが、あなたは私に探検に行き、学ぶ方向を与えました。 あなたの答えを理解すれば、ユーザーがデータをどのように更新するのかが決まりますが、新しいデータを継続的にアップロードするための提案はありますか? ありがとうございます。 –

+0

あなたのサーバー上の何かを自動化するための私の自動答えは、cronジョブを使用することです。しかし、Windowsではこれが欠けています。おそらく、あなたは窓のスケジューラを使用することができますか?私はWindowsを使用しないので、私はあなたにここでアドバイスするのに最適な人ではありません。 – hobodave

0

新しいデータベースをアップロードする代わりに、サーバー上のデータベースのレコードを更新するだけで済みます。そうすれば、データベースから読み込みたいときにデータベースが使用できなくなっても問題はありません。

HTTPプロトコルにはサーバープッシュはありませんので、ブラウザからの更新を確認する必要があります。 AJAXを使用してサーバーを呼び出して、ページのリロードを維持することができます。

+0

ありがとうございます。データをアップロードすることで問題が部分的に解決されたようです。しかし、私はこれに比較的慣れていないことを認めなければなりません。 私のウェブサイトでデータを扱った唯一の方法は、データベース全体のアップロードです。このように頻繁にシングルレコードをサーバーにアップロードする方法について私に指示できますか?それが役立つなら、それはVB6アプリケーションから出てくるでしょう。 –

+0

更新クエリまたは挿入クエリを使用して、データベース内のデータを変更します。サーバー上のページでこれを行う必要があります。そのため、HttpRequestオブジェクトを使用してプログラムからページをアクティブにし、ページにデータを送信できます。 – Guffa

0

独自のAjaxソリューションを手作業で使用する場合は、XmlHttpRequestオブジェクトを理解する必要があります。これには、返されるときに新しいデータでHTML DOMを更新するように指定できるコールバック関数があります。また、@hobodaveは、setTimeout()関数を使用して次の要求を遅らせてもよいことを指摘しています。 XMLやJSONのようなデータ構造で、事前に書式設定されたHTMLとしてデータを返すためのWebサービスを作成する必要があります。

ユーザーが新しい要求を行うと、変更されたデータのみを送信する必要があります。データが変更されていない場合は、すべてのデータではなく新しいタイムスタンプを送信してください。リクエストには、最後に成功した更新のタイムスタンプが常に含まれている必要があります。その場合、リクエストは変更された新しいデータのみを返す必要があります。

データの変更頻度に応じて、データサーバー側のすべての処理をキャッシュし、すでにフォーマット済みのHTMLを送信してページに挿入することができます。

新しい行をアップロードするか、行を変更するたびに(データベース全体をアップロードしないようにSQLスキルが必要です)、次回のWebページに必要な出力を生成することができます。あなたは、何かが変わった可能性のあるフードがない限り、人々が常にデータを求めていることを本当に望んでいません。

古くなったデータやサーバー側の過度の処理を気にする必要がない場合、これを行う簡単な方法は、meta refresh tagを使用してページ全体を自動的に更新することですが、毎回データ・サーバー側を処理しなければならず、これは全くうまくスケールされません。

関連する問題