有一个思路,你可以用ajax局部刷新数据,不刷新整个页面,同时用缓存,例如第一个30秒的数据放入缓存,页面从缓存里取数据,第二个30秒,你从数据库取出数据后,写个对象对比的方法,来比对新数据和第一个30秒存入缓存的数据,如果数据没有改变,那页面什么操作也不用做,因为数据没变化,刷新也没意义,如果第二个30秒数据发生变化,那么就刷新缓存为第二个30秒的数据,并且局部刷新页面数据。数据库的查询是避免不了的,所以没发减轻数据库的压力,只能是优化数据的显示。就象我上边提到的,如果前后2个30秒数据没有变化,那么就不要刷新页面。
你把前台页面刷新,与后台定时查询数据两个刷新分开来。
旧的方案,每隔30秒的自动刷新保持不变。
后台查询业务可以设计成定时任务,请参考Timer或者quertz设计实现。保持没28秒刷新一次就可以满足前台对数据有效性的要求。
这样设计可以解决并发访问数据的情况,因为访问数据库的查询业务只有一个定时任务来实现。
希望对你有帮助
这样经常刷新肯定对数据库有影响的,你这样是可行的,也可以放在缓存里面~~