想象一下这个场景: 您有一个由多个应用程序查询/更新的数据库,并且您还拥有使用该数据库的RESTful服务。
是否有可能以某种方式通知客户端(网页或其他)数据库有新数据而不必每秒调用Web服务来查找新数据?
这个问题更多的是“被动”调用,就像RMI方法一样。
我可能正在做梦,但必须有办法在没有每隔XX秒进行一次AJAX调用的情况下这样做。
PS。如果真的需要AJAX调用,那么有更好/更聪明的方法吗?
对不起,如果这个问题太傻了。
我很感激你的时间。
答案 0 :(得分:1)
这"反应"你正在谈论的事情又是“事件驱动的”#34; webservices(例如,您可以通过使用node.js来实现)。事件更新通常通过"消息队列提供服务"多个消费者收听以获取更新,并做出相应的反应。
特别是,在消息队列中侦听这些更新的行为通常是通过publisher subscriber
设计模式完成的。这些日子非常流行,甚至被纳入一些较新的数据库。
答案 1 :(得分:0)
如果该服务真的是RESTful,而不仅仅是使用REST作为流行语,那么我想最简单的方法就是使用If-Modified-Since标头不断轮询的资源。该响应应该位于某个缓存中,客户端应该从那里获取它,并且当有新数据时应该重置缓存。
另一方面,如果您并不真正关心REST约束,那么您可以通过消息队列,pub-sub等跟踪Kristian的响应并使用某种通知。
两者之间的妥协是通知只告诉客户服务器有新数据,而不是通知。这可能就是我做的。