0

我在asp.net 中创建了一个页面。它正在访问数据库中的数据。我想要的是每当我更改数据库中的数据时,更改应该会自动反映在页面上,而无需用户按下刷新按钮。有人可以告诉我该怎么做。可以使用java脚本完成吗?

4

3 回答 3

1

您可以使用Web 套接字将数据发送到连接的客户端,也可以使用 AJAX、jQuery ajax将服务器池化以进行数据库更改,或者您可以使用 asp.net ajax 计时器控制。使用 asp.net ajax 计时器会比其他人更直接。

使用 asp.net 定时器

html

<asp:ScriptManager ID="ScriptManager1" runat="server" />
    <asp:Timer runat="server" id="UpdateTimer" interval="5000" ontick="UpdateTimer_Tick" />
    <asp:UpdatePanel runat="server" id="TimedPanel" updatemode="Conditional">
        <Triggers>
            <asp:AsyncPostBackTrigger controlid="UpdateTimer" eventname="Tick" />
        </Triggers>
        <ContentTemplate>
            <asp:Label runat="server" id="DateStampLabel" />
        </ContentTemplate>
</asp:UpdatePanel>

代码背后(服务器端代码)

protected void UpdateTimer_Tick(object sender, EventArgs e)
{
   // Update the ui with database changes
}
于 2013-01-02T10:08:51.897 回答
1

阅读有关长轮询彗星编程的信息

于 2013-01-02T10:11:42.293 回答
1

对于网页,最好的方法是使用 javascript/jQuery 异步轮询页面

javascript: setTimeout - http://www.w3schools.com/js/js_timing.asp

jquert: $.ajax - http://api.jquery.com/jQuery.ajax/

  1. 创建一个以指定间隔循环的函数 -函数 CheckServer(seconds)
  2. 创建一个页面,告诉服务器上有更新 - Updated.aspx
  3. 使用$.ajax函数 CheckServer(seconds)中调用Updated.aspx并检查更新。
  4. 当有更新时,运行代码以刷新页面上的必要部分

您可以在此处找到作为 VS2012 ASP.NET 项目的示例:

https://docs.google.com/file/d/0B9m3YXHeSTDOakxVbk50MHhhTkE/edit

有3个重要文件:

  1. UserPage.aspx - 用户将在哪里看到更新。
  2. MakeUpdatePage.aspx - 管理员进行更新的地方。
  3. 我没有通过 aspx 页面检查更新,而是在services.asmx中创建了管理更新和数据交换的 Web 服务。

代码并不完美,只是为了给你故事的要点,但它确实有效。我在 2 个用户、1 个管理员的情况下对其进行了测试。

这个解决方案有点复杂,因为我还向您介绍了Web 服务。而不是默认的。这些有点定制。它们具有使它们能够被客户端的浏览器直接调用并返回json 对象的属性。因此,您还将了解json是什么...

你可以在这里找到一篇关于这些概念的好文章:

http://www.codeproject.com/Articles/45275/Create-a-JSON-WebService-in-ASP-NET-2-0-with-a-jQu

于 2013-01-02T10:16:00.483 回答