没有做过,不过我觉得可以这样做。
一、数据库触发器。
在数据库内调用应用程序的接口。让HI程序知道数据有新值,然后HI去读取里面的值。
二、定时访问数据库
但是这样有一个问题,这样会让数据库的访问数增加很多,容易出现锁的问题。
这样的话,就可以做一些数据库级的优化,应该可以改善很多。
三、读取HI的文件以及本地缓存
我之前做的一个项目中
涉及过这个东西
基本上思想就是
前台设计时器,定时发送请求回服务器
后台ACTION查询状态TABLE(此Table只存储时间戳)
当前台发送的时间戳与状态Table中时间戳不一致时
Action得出结论:前台数据并非最新
将最新内容发送至前台
PS:由于Hibernate缓存技术的应用,此方法不会造成数据库死锁
首先,你说的这种东西,要么做一个oic控件,要么只能用ajax,当然用flex也可以实现的。
ajax代码这方面的东西应该是很多了网上,自己查一下就知道了。
仔细分析楼上各位说的话,其实归根到底,都是前台使用ajax对服务器进行定时访问,而哪些数据库方面的优化之类的则是java底层考虑的内容。这些的话都是数据同步方面的问题。个人认为更简单、效率更高的服务层的写法应该是将页面中最新的内容在服务器缓存与数据库中进行同步。这样当在new页面增加新闻时,同时向数据库和服务器内存当中保存数据,这样ajax的访问请求根本就无需再走数据库了。互联网上的很多门户网站都是这样处理首页新闻的。他们甚至有的是将index页面直接缓存到内存当中(或者在主页内容进行更改时直接更新index页面文件的)。这样才是效率的王道!
在页面上设置一个定时器,循环去检测,如果有就提示,只能这么做,貌似还不能从后台直接推送到前台去,只能由请求来触发事件。
这个没有什么好的办法吧,我觉得还是加一个定时器,定时检测,看有没有变化,可以在服务器上写一句话,1或是0 ,然后在客户端,1秒检测一次。如果有变化了(1):开工,没有继续等待