我需要保持某些数据(在一个网格中)的最新情况,并打算每15个seocnds对服务器进行一次轮询,以获取数据并刷新网格,但是它感觉有点脏(网格将每15秒有一个加载图标)。看起来不太好..。
另一种选择是检查是否有新数据,并将新数据与当前数据进行比较,并且只在有任何更改时刷新网格(因为维护每个登录用户的当前状态似乎也是一种过度),因此我必须这样做。
我相信有更好的解决方案,我很想听听它们。
我听说过彗星的事,但是乳头似乎有点过分了
顺便说一下,我在服务器端使用了asp.net MVC。
我想听听人们对js啦啦队继续投票的支持或反对意见。
发布于 2009-11-23 14:16:20
听起来彗星确实是你要找的解决方案。在这种情况下,您不需要轮询,也不需要进行比较,因为您只能将“相关”更改的数据推到网格中。
看看WebSync,它是一个很好的.NET彗星服务器,可以让你做你所描述的事情。
这里有一个使用ExtJS和ASP.NET的演示,它推动股票代码更新的连续流。演示的内容比您需要的要多一些,但是主体是相同的。
发布于 2009-11-16 15:26:17
每次从服务器获得答案时,检查是否有什么变化。
做个请求。请让用户知道您正在使用一些旋转器,不要隐藏它。将下一个请求安排在15秒内。下一个请求将执行;如果没有任何更改,请在15 +5秒内安排下一个请求。下一个请求将执行;如果没有任何更改,请在15 +5 +5秒内安排下一个请求。诸若此类。执行下一个请求;如果确实发生了更改,请将间隔重置为15秒。
Prototype可以用Ajax.PeriodicalUpdater半自动地完成这个任务,但是您可能需要更符合您需要的东西。
总之,只是个主意。
至于持续轮询,一般情况下,只有在访问另一个站点(使用PHP“桥接”或类似的方法)时才会出现问题。如果你正在使用你自己的资源,你只需要确保你没有耗尽它们。用衰变来设定适当的间隔。
发布于 2009-11-17 19:44:01
我认为,如果“更新需要保持不变”,Comet并不是过火。15秒非常频繁地使用;您是否被很多人访问过?在满足其他请求的同时,您的服务器可能会被消耗掉。
https://stackoverflow.com/questions/1742809
复制相似问题