-2

我在主 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>
4

2 回答 2

1

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

ASP.NET SignalR 是一个面向 ASP.NET 开发人员的新库,它可以非常简单地将实时 Web 功能添加到您的应用程序中。什么是“实时网络”功能?它是让您的服务器端代码实时将内容推送到连接的客户端的能力。

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

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

于 2013-10-19T18:57:39.857 回答
0

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

于 2013-10-20T19:41:11.193 回答