我正在建立一个类似于价格比较的网站。这将在ASP.NET/WebForms/C#/.NET3.5中开发。该网站将由公众使用,因此我无法控制客户端-应用程序在他们的生活中并不是那么核心,他们会不遗余力地让它工作。
我想要有一个表格/网格,在行中显示产品,在列中显示供应商,在单元格中显示价格。价格更新将持续到达(服务器),我希望将任何更新“推送”到客户端的浏览器-理想情况下只更新已更改的内容。因此,如果供应商A更改了产品B的价格,我希望立即更新所有正在查看此信息的浏览器中的相关单元格。
我不想使用任何浏览器插件(例如Silverlight)。Javascript很好。
最好的方法是什么?
我的选择大概是:
1)让客户端页不断轮询服务器的更新,找到正确的单元并更新它;或2)使服务器能够将更新发送到正在侦听这些更新的所有打开的浏览器页。
第一个似乎是最合理的,但我不想限制SO社区的集体智慧。
我很乐意购买任何可能对此有所帮助的第三方组件(例如网格)。我已经有了DevExpress网格/ajax组件,如果它们提供任何有用的东西的话。
发布于 2009-05-08 05:09:22
您可能会看到一些所谓的服务器端推送技术,如- AjaxPush、Comet,甚至一些商业产品,如kaazing gateway & lightstreamer
发布于 2009-05-08 04:56:15
我认为您的直觉是正确的,即拉模型更容易构建。iWeasel提到了Ajax,我想告诉你Dave Ward在Asp.Net上关于jQuery, Ajax and PageMethods的帖子。他的博客有一个优秀的系列,将帮助你实现你想要做的事情。
为了验证戴夫的方法,也在jQuery和Asp.net上使用Rick Strahl has a great article,在他的示例中,他以类似网格的格式显示产品。
虽然我没有使用这个jQuery插件的经验,但您可能希望研究一下jQuery Timer来帮助您确定时间间隔。
发布于 2009-05-08 04:33:51
我不认为你可以‘轮询’一个浏览器(IE,火狐等),所以,据我所知,获取数据的唯一方法是让页面请求它。
如果每隔几秒钟刷新一次AJAX更新面板呢?这样页面就不会闪烁,您将限制来回发送的数据量。
https://stackoverflow.com/questions/839545
复制