質問:
Web フォームにはコントロールがあり、このコントロールはデータベースにリアルタイムでアクセスすると、データがクライアントに送信され、最新のデータが表示されます。
分析します:
クライアントを更新する必要があるため、サーバーが変更され、クライアントがデータを更新する必要があるため、ページを更新せずにデータを更新するにはどうすればよいですか。つまり、クライアントには基本的に「更新なし」と表示されます。
解決策: (間違いがあれば修正してください、私のレベルには限界があります、ありがとう)
主要なソリューションは 2 つあります: リアルタイムとポーリング
リアルタイム: データベースにトリガーを追加し、セマフォとして使用するファイルをサーバーに書き込むことによってトリガーします。この問題に関しては、このテクノロジは複雑すぎると思うので、私は研究を続けていません。興味がある人は MSDN にアクセスして参照してください。ただし、実際にリアルタイムでデータを更新できるため、リアルタイムには最も効果的です。会話。
ポーリング: 1. xmlhttp の更新なしメソッドを使用します。この方法については、以前に転送した他の人が書いた記事を参照してください。詳細な紹介が記載されていますが、テストした結果、サーバーから取得されるのはページ全体の HTML コードであることがわかりました。そこから必要なコントロールのコンテンツを取得し、それを繰り返します。この構成はまだ複雑すぎて、必ずしも効率的ではありません。
2. HTML フレームワークを使用して完成させます。これは私が主に書いている方法です。この方法はシンプルで実装が簡単で、小さなデータのみを動的に表示する場合に非常に便利だと思います。
詳細な紹介: HTML を更新する必要がある場所に iframe src="../test/WebForm2.aspx" を記述します。Src は接続するページであり、必要に応じてフレームとスクロール バーのサイズを調整します。
新しいページ WebForm2.aspx をフレーム接続ページとして作成し、リアルタイムで更新する必要があるコントロールをこのページに配置し、Page_Load イベントに配置します。
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) MyBase.Load を処理します
'データベースの更新を取得するコードをここに配置し、コントロール End Sub に関連付けます
次に、メタ HTTP-EQUIV="Refresh" content="1" URL="/test/WebForm2.aspx" を HTML に追加します。
これは、このページが 1 秒ごとに自動的に更新されることを意味します (実際の状況に応じて、window.setInterval(function,1000) などのフォアグラウンド クロックを追加することもできます)。その結果、最初のページが開始された後に結果が完了します。 、2 番目のページは中断されませんが、しばらくすると更新されますが、クライアントは更新されない場合と同じように感じます。