利用前后端事件总线实现Web推送

  Web页面如何在服务器数据变更的时候自动刷新呢? 由于http只能是UI单向请求服务器,所以一般的做法是在页面做个定时刷新的JS功能,但这种做法有以下不足:

  1.不利于管理,如果需要这种功能的页面多,页面分散

  2.盲目刷新,不管服务器有没有真的数据变更,只要到了轮询时间点就肯定调服务器刷新一次

  3.粗粒度, 无法区别不同的变更,如 新数据产生的时候 才刷新,修改数据就不需要刷新,新增100条数据才刷新 等情况

准对上面情况,可采用 分别在前台和后台分别实现事件总线 方案来实现,具体如下:

  将各种需要主动推送的变更当做不同的事件来对待,后台提供一个集中的缓存来收集这类事件。相应的业务方法处理完后,以事件的方式放入到该缓存中去,产生的时间也要一起保留.并给前端提供api来查询指定时间段产生的事件

  涉及到的api如下:

    getEvents(String[] eventIds, long startTimeInMilliseconds, long endTimeInMilliseconds)

  前台利用jQuery,Json等技术。定时调上面的api获取指定时间该系统产生的所有事件,放入到数组中。

  相关业务页面只需要向其注册监听所关心的事件,并提供相应回调方法.

  前端事件总线将定时采集到得事件 通过回调方法统一分发给不同注册的页面,具体页面在回调方法中做ajax刷新功能,也可以将事件收集,如收集到了100条再做刷新,或分类来对待如 新增数据事件才刷新 等过滤操作

 

 这样就实现了Web推送的统一管理,用户在此架构基础上做一些更加精细化得操作都是可以的.具体不再详述

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值