我们正在考虑使用Web应用程序为用户提供系统数据的频繁更新。最初,数据将仅限于系统压力,流量等,但该概念可适用于我们业务的许多领域。数据存储在SQL Server中。
问题是,当新数据插入数据库时,我们如何强制网页上的表更新。例如,泵报告新的流量值。可以限制对数据库的更新,但实际上,为了我们的目的,我们每隔一两分钟就会看一次新的更新。
这似乎是使用推送通知的情况,但我们可以在ASP.NET中使用什么? HTML5是不可能的,虽然我们已经看过一些带有网络套接字的推送演示。
答案 0 :(得分:1)
使用HTTP,您只能向客户端查询发送响应,因此无法在不使用Web套接字的情况下推送内容 最常见的解决方案是
后一种方法最接近推送内容,因为客户端不检索数据,但如果您想操纵数据客户端,最好只检索数据。
后者的一个好处是服务器处理数据并将其转换为普通文件,服务器可以轻松地为许多客户端提供服务,而不是每次打开时都创建页面。
答案 1 :(得分:0)
“Comet”是您正在寻找的技术。这基本上是人们提出的一些技巧来做你要求的那种事情。这些技术中最简单的方法是让浏览器向服务器发出持续请求,以获取它应该知道的任何更新。最通用(但复杂)的技术涉及巧妙地使用引用动态脚本资源的嵌入式<script>
标记。
答案 2 :(得分:0)
您可以使用与Timer
结合的ASP.NET UpdatePanel
控件定期检查新数据,然后刷新UpdatePanel
。
答案 3 :(得分:0)
通过ajax轮询是最好的解决方案。
由于您使用的是ASP.NET,因此一些内置的ajax控件可以使这非常简单:
http://ajax.net-tutorials.com/controls/timer-control/
如果您想更好地完成这项工作,可以考虑创建一个Web服务并使用原始JavaScript或JQuery框架来处理ajax请求/更新。我这样说是因为ASP.NET ajax将完整的页面视图状态发送回服务器,这是低效的,通常是不必要的。