作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们目前正在将我们的应用程序移植到 vaadin 7,我想跟踪用户在过去 30 年代左右是否活跃。我们曾经在自定义 CommunicationManager 中跟踪用户 Activity ,但由于此类已被弃用,我想我们可能不得不尝试不同的方法。
我创建了一个扩展程序来扩展 UI。
为了简单起见,我们将点击和键盘使用计算为用户 Activity :
// this is the extend method in the extension connector
@Override
protected void extend (ServerConnector target) {
UIConnector uiConnector = (UIConnector) target;
VUI uiWidget = uiConnector.getWidget();
uiWidget.addDomHandler(this.keyPressed(), KeyPressEvent.getType());
uiWidget.addDomHandler(this.mouseClicked(), ClickEvent.getType());
}
然后该扩展将安排一个计时器,该计时器将每 30 秒通过 RPC 调用服务器,但前提是用户处于 Activity 状态。这个定时器工作。不起作用的是 DOM 事件,它们似乎永远不会到达我添加的事件监听器。
我做错了什么?
最佳答案
根据您的实现,我建议您提供 Refresher add-on一试。它以类似的方式工作,但可以让您更好地控制轮询间隔、服务器端监听器。另外,您不必维护它。
另一种选择是利用 Vaadin 轮询支持(参见 https://vaadin.com/wiki/-/wiki/Main/Using%20polling)。
关于java - Vaadin7 : Tracking whether a user is active (DOM Event Handler),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15806554/
我是一名优秀的程序员,十分优秀!