刷新页面的一部分

Refresh a part of a page

本文关键字:一部分 刷新      更新时间:2023-09-26

我在主div内部几乎没有网格视图,我需要每1秒用JavaScript刷新一次主div。

我不想将 ajax 与计时器和触发器一起使用,因为在页面中滚动时我遇到了"跳转" - 一个已知问题。(或不?

正如您在网格视图中看到的那样,我有从数据库拍摄的图片。因此,目标是通过每 1 秒刷新一次来获取最新图片。我可以用JavaScript做到这一点吗?如果我也能有一些淡入淡出效果,那就太好了!!

<div id="Main">
<div id="Grid1">
<asp:GridView ID="GridBox1" runat="server" AutoGenerateColumns="False">     
<Columns>
<asp:ImageField DataImageUrlField="Image_path" DataImageUrlFormatString="~/Pic/{0}" HeaderText="pic">
<ControlStyle Height="200px" Width="200px" />
</asp:ImageField>
</Columns>
</asp:GridView>
</div>

<div id="Grid2">
<asp:GridView ID="GridBox2" runat="server" AutoGenerateColumns="False">     
<Columns>
<asp:ImageField DataImageUrlField="Image_path" DataImageUrlFormatString="~/Pic/{0}" HeaderText="pic">
<ControlStyle Height="200px" Width="200px" />
</asp:ImageField>
</Columns>
</asp:GridView>
</div>
</div>

每一秒轮询一次是非常昂贵的。我建议您改用利用Web套接字的推送技术,例如出色的库SignalR。

ASP.NET SignalR 是面向 ASP.NET 开发人员的新库,使其 将实时 Web 功能添加到您的 应用。什么是"实时网络"功能?这是能力 让服务器端代码将内容推送到连接的客户端 它实时发生。

您可能听说过WebSockets,这是一个新的HTML5 API,可以 浏览器和服务器之间的双向通信。信号R 当WebSocket可用时,将在幕后使用WebSockets,并且 优雅地回退到其他技术和技术,当它 不是,而您的应用程序代码保持不变。

SignalR 还提供了一个非常简单的高级 API 来执行服务器 到客户端 RPC(在客户端的浏览器中调用 JavaScript 函数) 来自服务器端 .NET 代码)以及 ASP.NET 应用程序中 为连接管理添加有用的钩子,例如连接/断开连接 事件, 分组连接, 授权。

不要认为Gilad已经为SignalR做好了准备,尽管它的设置相对轻松。或者,您可以使用 .