抛弃定时刷新,使用DWR技术实现页面无刷新效果的进度条

2.4 新建一个jsp页面

2.4.1 导入js

抛弃定时刷新,使用DWR技术实现页面无刷新效果的进度条

jsp文件中必须引入几个js,它们都是隐含存在的,不用考虑它们在哪儿,其中engine.js和util.js是固定的,另外的一个js的名称就是dwr.xml中配置的类名。

2.4.2 画出jsp页面

抛弃定时刷新,使用DWR技术实现页面无刷新效果的进度条

抛弃定时刷新,使用DWR技术实现页面无刷新效果的进度条

MessagePush.onPageLoad();//绑定用户ID MessagePush类中的方法,后面步骤会提到。

Test.getFromPage(userId,"getProgressBar");//模拟前台调用后台调用后台方法 该业务方法里调用进度条方法实现进度条。

2.5 新建一个ScriptSessionListener类实现ScriptSessionListener接口

ScriptSessionListener用来监听ScriptSession的创建及销毁事件,ScriptSession第一次访问会创建一个ScriptSession。刷新后又会创建一个新的ScriptSession,HttpSession第一次访问会创建一个新的HttpSession,之后再访问的时候,就会保持当前的Session,即使是刷新,也能保持当前的HttpSession。

由于上面的问题,我们就需要自己管理ScriptSession。其实,有效地HttpSession,就是那个和当前的HttpSession匹配的ScriptSession。所以,我们就可以自己维护一个Map,在这个Map里面,我们定义key就是HttpSession的Id,其值就是ScriptSession对象。

在每一次页面载入的时候,都去注册此ScriptSession,那么就会把新的ScriptSession绑定到httpSession上面了。

2.6 新建一个类继承 DefaultScriptSessionManager,用来绑定 DWRScriptSessionListener,并在web.xml中将 DWRScriptSessionManager 配置在 dwr-invoker servlet中。

抛弃定时刷新,使用DWR技术实现页面无刷新效果的进度条

2.7 下面完成消息推送类,MessagePush

抛弃定时刷新,使用DWR技术实现页面无刷新效果的进度条

抛弃定时刷新,使用DWR技术实现页面无刷新效果的进度条

2.8 下面完成testAction类,模拟调用进度条的类

抛弃定时刷新,使用DWR技术实现页面无刷新效果的进度条

2.9效果图如下

抛弃定时刷新,使用DWR技术实现页面无刷新效果的进度条


分享到:


相關文章: