1

更新パネルにグリッドビューがあり、2秒後にポストバックして、このようにパネルを更新しています

<script language="javascript" type="text/javascript">
        window.setInterval(function () {
   __doPostBack('<%= UpdatePanel1.ClientID %>', '');
        }, 2000);
</script>

サーバー側では、このコードを使用して、各ポストバックでグリッドをロードしました

if (IsPostBack)
        {
            GridView2.DataBind();
            SqlDataSource1.DataBind();
        }

それに応じて 2 秒後に Gridview をロードします。しかし、問題は、インターネット接続が少し遅い場合や、Web サーバーに負荷をかける場合に機能しないことです。サーバーレベルではなくクライアントレベルですべてを行います.Plzはより良いアイデアを提供します

4

1 に答える 1

1

率直に言うと、これはUpdatePanel. そのパネルを 2 秒ごとに更新するためだけに、(舞台裏で) ページ全体をレンダリングしています。

いくつかの代替手段があります。

  1. ページ メソッド
  2. AJAX 要求に応じてコンテンツを提供する HTTP 対応の WCF エンドポイント。
  3. AJAX 要求にも応答する Web フォーム アプリケーションに統合された MVC コントローラー。

これらのアプローチはすべて、ページをレンダリングする必要はなく、実際に必要なコンテンツだけをレンダリングする必要があります。したがって、それらはすぐに効率的になります。

オプション #2 と #3 では、AJAX 呼び出しを行うために少し手動の JavaScript が必要です。これには jQuery がうまく機能します。

ただし、数秒ごとにサーバーをポーリングする必要があるという事実にまだ対処しています。これを回避するには、代わりにプッシュ通知を実現するロング ポーリングについてお読みください。

参照: ASP.Net SignalR

于 2013-01-12T11:20:52.043 に答える