1

我在更新面板中有gridview,两秒钟后我正在回发以更新这样的面板

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

在服务器端,我使用此代码在每个回发时加载网格

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

它相应地在两秒钟后加载 Gridview。但问题是它不能在有点慢的互联网连接上工作,或者也不能在 Web 服务器上加载我只想问在客户端或使用 javascript 是否有任何替代方案,所以它应该在客户端级别而不是服务器级别上做所有事情。请给出更好的主意

4

1 回答 1

1

坦率地说,这是对UpdatePanel. 您正在渲染整个页面(在幕后),只是为了每 2 秒更新一次该面板。

有几种选择:

  1. 页面方法
  2. 支持 HTTP 的 WCF 端点,它提供内容以响应 AJAX 请求。
  3. MVC 控制器集成到您的 Web 窗体应用程序中,它也响应 AJAX 请求。

所有这些方法都不需要渲染页面,只需要您实际需要的内容。因此,它们立即变得更有效率。

选项 #2 和 #3 将需要一些手动 JavaScript 来进行 AJAX 调用。jQuery 很好地解决了这个问题。

但是,您仍在处理必须每隔几秒钟轮询一次服务器的事实。为避免这种情况,您可能需要阅读有关长轮询以实现推送通知的信息。

另请参阅:ASP.Net SignalR

于 2013-01-12T11:20:52.043 回答