Java 如何使数据库更改导致web客户端视图更新
环境:Linux上的JavaEE7、Glassfish 4、MySQL 5.7,在带有512MB ram的ARM7服务器上,应用程序必须节省内存! 应用程序:一个数据库驱动的Java web应用程序,为运行默认浏览器的Android 4.0的多个Android平板电脑客户端提供服务 客户端将有两种基本用户类型:生产者和消费者。生产者生成显示在消费者浏览器上的任务。当生产者创建一个新任务时,如果所有登录的使用者的浏览器上都显示了TaskList viewTaskList.jsp,并且显示了挂起状态,则该任务应立即显示在浏览器上。使用者从任务列表中选择任务并处理它们doTask.jsp。当使用者选择as任务时,应将其标记为在所有其他任务列表显示中工作,且不可选择。如果打开任务的使用者单击“取消”按钮,则所有任务列表上的任务状态都应更改为“挂起”。当任务完成时,它会被标记为已完成,并且应该从显示任务列表视图的任何使用者浏览器中消失Java 如何使数据库更改导致web客户端视图更新,java,mysql,jsp,jpa,comet,Java,Mysql,Jsp,Jpa,Comet,环境:Linux上的JavaEE7、Glassfish 4、MySQL 5.7,在带有512MB ram的ARM7服务器上,应用程序必须节省内存! 应用程序:一个数据库驱动的Java web应用程序,为运行默认浏览器的Android 4.0的多个Android平板电脑客户端提供服务 客户端将有两种基本用户类型:生产者和消费者。生产者生成显示在消费者浏览器上的任务。当生产者创建一个新任务时,如果所有登录的使用者的浏览器上都显示了TaskList viewTaskList.jsp,并且显示了挂起状态
我正在学习JavaEE编程,还不精通JPA和JSF,但了解基本概念。从我在这里和其他地方看到的情况来看,我认为Comet和/或JQuery/AJAX可能会帮助我解决这个问题,但我不知道如何使用它们。我需要基本的指导,了解如何让数据库更新导致消费者显示的更改,而不让消费者请求更改。解决方案的一部分是向MySQL数据库添加一个或多个触发器吗?您需要在这里实现轮询模型。在GUI上实现一个脚本,该脚本应该每n秒进行一次服务器调用,带来最新的数据并显示在GUI上,显然在服务器端,您需要能够带来数据并生成响应的代码 要实现轮询,可以将函数设置为在x时间之后调用
window.setInterval(dbCallFunction, x);
一旦函数调用,进行服务器调用,返回结果,就可以再次设置函数间隔
有很多javascript库可以为您解决这个问题,我建议您使用JQuery,下面是
干杯 轮询无法扩展
与旧浏览器的回退一起使用
你可以试着自己设置,但这是一个PITA
您可以使用像Pusher这样的WebSocket服务
基本上,您设置了一个客户端订阅的WebSocket频道。他们订阅。当您想要通知他们时,可以在服务器上调用notify方法,然后将其发送到所有客户端
您可以在Java中执行此操作,甚至可以直接在数据库(如Postgres)中使用NOTIFY函数执行此操作
window.setInterval(dbCallFunction, x);