我有一个页面,我想在它上面放置一个面板,每5分钟自动刷新,并且如果用户收到了信息,则向他显示。这个问题应该如何解决呢?
我应该使用AJAX、jQuery还是JavaScript?我的首选方案是服务器端解决方案。
我有一个页面,我想在它上面放置一个面板,每5分钟自动刷新,并且如果用户收到了信息,则向他显示。这个问题应该如何解决呢?
我应该使用AJAX、jQuery还是JavaScript?我的首选方案是服务器端解决方案。
setInterval(function(){
$.ajax({
url: "someUrlThatServesUpdatedContent.aspx",
cache: false
}).done(function( html ) {
$("#results").html(html);
});
}, 300000);
以上只是一个简单的示例,指引您朝正确的方向前进。
编辑:这里有一个不使用JQuery进行ajax调用的示例https://stackoverflow.com/a/2792721/1059001
使用前面答案中描述的 AJAX 方法可以实现这一点,但如果您希望有一个服务器端解决方案,我建议在 iframe 中加载页面的那部分,并使用 meta refresh:
<meta http-equiv="refresh" content="300">
然而,这种方法会使得将任何事件或用户操作传达回主页面变得困难。
由于您正在使用ASP.NET,您也可以通过以下组合实现此行为:
<ContentTemplate>
内部的控件将受到部分更新的影响为了您的目的,可以使用Timer
控件作为触发器,以确保每5秒触发部分回发:
<asp:ScriptManager ID="scriptManagerMain" runat="server"/>
<asp:Timer ID="timer" Interval="5000" runat="server"/>
<asp:UpdatePanel runat="server">
<ContentTemplate>
<asp:Panel ID="panelToBeUpdated" runat="server">
<asp:Label ID="lblContent" runat="server" ></asp:Label>
</asp:Panel>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="timer" />
</Triggers>
</asp:UpdatePanel>