【问题标题】:Refresh client browser when adding new line in a specific table在特定表中添加新行时刷新客户端浏览器
【发布时间】:2012-04-17 17:12:06
【问题描述】:

我的场景:

客户端登录后,我的用户将被重定向到 index.aspx 页面。 在此页面中,我将在其中放置一个带有 gridview 的 div。 此网格视图将显示一个表中的数据。

我的问题是:如何始终刷新此 gridview 一条记录 保存在这张桌子上?

Ps.:我见过很多使用“服务器推送”技术、comet、ajax 等的例子。 不知道最好的方法,也找不到一个非常简单的例子。

【问题讨论】:

    标签: c# asp.net browser


    【解决方案1】:

    将新记录添加到表中时,真正的挑战是将这些更改实时传达给客户端,而不需要间隔轮询或需要某种用户交互。

    你有几个选择:

    1. 最好的办法是使用WebSocket,它可以实现客户端和服务器之间的双向通信。这是我会选择的解决方案。

      这里有一些使用WebSockets的例子:


      周围也有一些很好的库可以处理大部分的腿部工作。要检查的一对是WebSyncPokeIn。这两种产品都提供了不错的文档和社区版本,您可以免费下载。

      这里有一些教程可以查看:

    2. 使用 AJAX 每隔 X 秒数轮询一次更改。如果检测到更改重新加载页面,否则什么也不做。

    【讨论】:

    • 使用 AJAX 每 X 秒轮询一次更改。如果检测到更改重新加载页面,否则什么也不做。你能告诉我应该如何计算所做的更改吗?
    • @PankajGarg:计算所做的更改是什么意思?对一个函数进行 AJAX 调用,该函数传入显示的记录数并返回一个布尔值。该方法将返回一个行数,如果是recordsDisplayed != existingRecords,则使用异步回调重新绑定网格。
    • @abcdefghi:该问题询问何时在特定表中添加新行并且没有提及更新。但是,也有许多方法可以使用给定的方法处理更新。
    • 值得注意的是,我提倡使用WebSockets,而不是AJAX轮询。
    【解决方案2】:

    您可以使用 setinterval javascript 方法。我充当计时器并使用提交表单来刷新页面。其他方法可以是asp.net ajax toolkit timer control here

    【讨论】:

      【解决方案3】:

      将您的网格放入更新面板并将“更新模式”设置为始终

      【讨论】:

      • 你能告诉我,我应该如何刷新这个gridview?
      • 当它在更新面板中并且更新模式始终为更新模式时,对网格的每次更改都会被捕获并刷新。我认为你不需要做任何其他事情。
      • 那么,我可以不用更新面板吗?
      • 您可以刷新页面可以在页面加载时加载您的网格。 UpdatePanel 更好,因为它看起来流畅且易于实现。试试看你会喜欢的。
      【解决方案4】:

      您可以使用在后台使用 AJAX 的更新面板。请参阅此link 以获得简短的演示。

      【讨论】:

        【解决方案5】:

        你也可以使用普通的旧 html

        <META HTTP-EQUIV="REFRESH"
        CONTENT="15;URL=http://www.I18nGuy.com/index.html">
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2015-07-23
          • 1970-01-01
          • 2012-12-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多