在DB中插入/更新行时更新列表

时间:2014-06-12 19:49:10

标签: java javascript html wicket

我正在使用java / wicket,我需要开发一种功能,实时显示从 clients_request 表到达页面列表中的每个新请求。

我使用每秒单击一个按钮的脚本来创建此功能 查询bd然后重新加载所有表格内容。

有什么方法可以观察bd并仅在此表发生新的更改时重新加载页面?

3 个答案:

答案 0 :(得分:4)

如果您希望服务器处理更新(推送而不是拉取),您可以使用WebSockets,如下所示:http://wicketinaction.com/2012/07/wicket-6-native-websockets/

答案 1 :(得分:1)

不是以编程方式单击按钮而是更改它至少使用AjaxSelfUpdatingTimerBehavior

答案 2 :(得分:0)

我们有一个功能类似的功能。我们所做的是一个非常复杂的解决方案,因此我不会详细介绍所有细节,只是概述一下,如果您认为这是您正在寻找的东西,我将修改答案并给出完整的解释。

首先,我们以这种方式解决这个问题,因为在我们的情况下轮询不起作用,而且我理解它也不适用于你的问题。

我们所做的是对一个特殊的URL进行异步调用,该URL映射到页面的处理程序。这很重要:如果它在页面内(例如页面上的行为或组件),那么在调用期间页面将被锁定,用户无法与页面上的其他组件交互。

我们实现异步调用的方式是通过一些javascript,它会在页面加载后立即向该处理程序的URL发出ajax请求。在通话中,我们提供了一些有关我们正在等待的数据以及回调网址的信息。

然后处理程序只是等待触发重新呈现有问题的组件的事件(换句话说,它保留在请求上)。

当一个事件发生时,我们返回一个ajax响应,其中包含一些要评估的javascript,这会产生另一个ajax请求;这次,URL指向一些会重新呈现组件的行为。然后,该行为会重新呈现组件,并评估一些javascript以再次调用等待的URL。它继续这样,直到循环中的一个链接被打破。

如果这听起来像是适合您的事情,请发表评论。我很乐意提供有关如何完成所有这些工作的更多细节。