我能够将 ActiveMQ 集成并在我的 OpenXava 应用程序中创建 JMS 使用者。现在,我需要使用接收到的数据更新某些瞬态视图
消息,它有几个问题需要考虑,例如...如何从 JMS 侦听器 java 类并将更改推送到当前视图? ... 和
假设特定视图是当前视图!!!,但当前视图可以是整个应用程序中几个可能视图中的任何一个! ... 所以?所以?...
然后我确实想,我会将 JMS 消息持久保存到某个实体中(作为数据库中的临时存储),即使这会导致性能较低,但之后
那...如果某些用户正在查看瞬态视图,我将如何推送最近的更改。
我曾经使用一些启用了ajax的JSF实现来构建我的web应用程序,然后我可以在JMS侦听器中接收消息,然后获取jsf
托管 bean 引用并使用 Ajax 推送来刷新可由一个或多个用户查看应用程序打开的所有会话,因此这总是会产生
一种实时应用程序,它更新任何打开的视图(如果该视图是用户正在观看的视图)。
那么,有没有办法通过我的 OX 应用程序中的 JMS 侦听器类来实现这一目标?
提前致谢,
一个选项可以使用 JavaScript 定期调用,以了解表中是否添加了新记录或其他内容,以及是否刷新了案例。
如果您是 liferay,您可以使用 JavaScript 代码在该页面中创建一个 portlet。此代码可以使用 DWR 进行调用,如果有新数据,它可以直接调用“CRUD.refresh”操作。
像这样的事情:
refreshData = function() {
openxava.executeAction('YourApplication', 'YourModule', '', false, 'CRUD.refresh')
setTimeout('refreshData()', 5000);
}
setTimeout('refreshData()', 5000);
我没有测试这段代码,所以它肯定不能按原样工作。把它当作一个想法。
确实,这是一个肮脏的伎俩。理想的情况是 OpenXava 直接支持 comet,您只需调用服务器中的方法即可完成此操作。您认为为 OX 添加彗星支持值得吗?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)