请问使用timer不断去更新zul中的listbox
时间:2010-11-03
来源:互联网
原本是用server push的方式来更新页面,但是过十几分钟开始发现网页变慢了,用windows的工作管理员发现IE的记忆体用量一直不断升高,查程式确认资源都有释放掉,后来用listbox加上timer来做测试,先clear listbox child之后再appendchild 元件,大约每五秒更新10列资料,发现IE记忆体还是会一直增加,请问有什么解决方式吗?用grid的setModel也会
作者: ckh0719 发布时间: 2010-11-03
有可以重演的example zul 吗 @.@
作者: Tony1223 发布时间: 2010-11-04
程式码太多,贴关键的部分:
zul grid部分:
*****************************************
apply class doAfterCompose 之后启动timer:
*****************************************
timer class:
*****************************************
RowRenderer class:
zul grid部分:
1 |
<grid id="eventgrid"> <columns> <column label="主机" width="100px" align="center"/> <column label="系统名称" width="100px" align="center"/> <column label="事件代号" width="80px" align="center"/> <column label="事件简述" width="250px" align="center"/> <column label="发生时间" width="80px" align="center"/> <column label="通知次数" width="60px" align="center"/> <column label="处理情形" width="100px" align="center"/> <column label="处理说明" width="60px" align="center"/> </columns> </grid> |
*****************************************
apply class doAfterCompose 之后启动timer:
1 |
LiveEventMonitor lem=new LiveEventMonitor(); lem.setPage(eventgrid.getPage()); lem.setDelay(5000); lem.setRepeats(true); lem.start(); |
*****************************************
timer class:
1 |
public class LiveEventMonitor extends Timer{ public void onTimer(Event evt) { Grid eventgrid = (Grid) getFellow("eventgrid"); result=dao.find(); Vector v = new Vector(); if(result!=null){ for(int i=0;i<result.size();i++){ LiveEvent bean=(LiveEvent)result.get(i); Vector v1=new Vector(); v1.add(bean); v.add(v1); } if (eventgrid.getRowRenderer() == null) { eventgrid.setRowRenderer( new LiveEventRowRenderer()); } if (eventgrid.getModel() == null) { eventgrid.setModel(new ListModelList(v)); } else { System.out.println("lml.clear.........."); ListModelList lml = (ListModelList) eventgrid.getModel(); lml.clear(); lml.addAll(v); } } } } |
*****************************************
RowRenderer class:
1 |
public class LiveEventRowRenderer implements RowRenderer{ public void render(Row row, Object data) throws Exception { //test Vector _data = (Vector)data; for (Enumeration e = _data.elements(); e.hasMoreElements();) { LiveEvent bean = (LiveEvent) e.nextElement(); new Label(bean.getEventSn()).setParent(row); new Label(bean.getEventSn()).setParent(row); new Label(bean.getEventMsg()).setParent(row); new Label(bean.getEventSn()).setParent(row); new Label(bean.getHostName()).setParent(row); new Label(bean.getEventSn()).setParent(row); } } } |
作者: ckh0719 发布时间: 2010-11-04
你好,
我测了这个问题,我觉得这应该是个bug,
所以我 post 了一个 bug 在 zk trakcer 上
我测了这个问题,我觉得这应该是个bug,
所以我 post 了一个 bug 在 zk trakcer 上
作者: Tony1223 发布时间: 2010-11-05
刚刚试过从zk3换到zk5,不过server push跟Jasperreport在zk5版本的使用上好像有所限制,而这两个我有用到,加上很多原本拉好的画面全部走位,还有一些功能会出现警告讯息,看来改写是在所难免,我在想想其他办法,谢谢
作者: ckh0719 发布时间: 2010-11-05
http://sourceforge.net/tracker/?func=detail&atid=785191&aid=3103470&group_id=152762
Bug updated.
实作够短的 Idgenerator 可以解决这个问题
Bug updated.
实作够短的 Idgenerator 可以解决这个问题
作者: Tony1223 发布时间: 2010-12-23
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28