使用updatepanel的替代方案

时间:2013-01-12 11:14:34

标签: asp.net updatepanel page-refresh

我在更新面板中有gridview,我在两秒后回复更新面板

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

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

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

它相应地在两秒后加载Gridview。但问题是它不能在有点慢的互联网连接上工作或者在网络服务器上加载我只想问在客户端或javascript上有任何替代方案所以它应该在客户端级别而不是在服务器级别上完成.Plz提供更好的主意

1 个答案:

答案 0 :(得分:1)

坦率地说,这是UpdatePanel最糟糕的使用方式。您正在渲染整个页面(幕后)只是为了每2秒更新一次该面板。

有几种选择:

  1. Page Methods
  2. 启用HTTP的WCF端点,用于响应AJAX请求提供内容。
  3. MVC控制器集成到您的Web窗体应用程序中,该应用程序也响应AJAX请求。
  4. 所有这些方法都不需要呈现页面,只需要实际需要的内容。因此,他们立即更有效率。

    选项#2和#3需要一些手动JavaScript来进行AJAX调用。 jQuery很适合这个。

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

    另请参阅:ASP.Net SignalR