注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

白小博

Morning的脚印,一步,一步……

 
 
 

日志

 
 

L-20070228  

2007-02-28 22:02:00|  分类: L-实习日志 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

2007-2-28

今天完成了两大工作:表格排序和设备内容缓存。

1.表格排序:


利用MyFaces的Tomahawk扩展组件 自定义排序属性,创建排序方法。

首先,为了可扩展性,创建一个虚类AbstractSortableList,结构如下:

L-20070228 - morningbzy - morningbzy 的博客

然后,为可排序表格创建其对应的Backing Bean,继承类AbstractSortableList,并实现其虚方法。

sort(String column, boolean ascending),传入两个参数。column为欲排序的列名,ascending为布尔型,表示是否升序。在方法内,实现一个内部类Comparator,通过判断列名和是否升序来决定排序方式,返回配比较结果(-101)。再根据这个Comparator来对List进行排序。

1.       设备内容缓存:

由于在产生设备内容管理页面的时候,服务器端需要与设备进行交互以便提取其最新数据,这个步骤需要消耗大量的时间。然而,设备段有很多数据的更新概率很低,而且数据量庞大,比如节目列表等。对于这些数据,决定采用数据缓存机制来。

首先创建一个数据缓存类ContentDataBuffer,用来维护一个Hashtable,保存这些数据。在服务器启动的时候创建该类的实例,并将其储存在

然后在内容管理对应的Backing Bean里,需要用到这些数据的时候,直接到ContentDataBuffer根据Key值来取,避免了服务器再次与设备进行不必要的交互,从而使网页的相应时间大大减少。

当然,有些时候,数据还是需要更新的。我们可以根据数据更新的需求来按照不同的方式对其进行更新。例如,有些数据经常更新,像警报等,则它们就不再占用缓存空间,实行实时刷新,每次页面生成的时候都会强制去后台去一遍数据,甚至控制页面定时自动刷新;有些数据,例如设备的常用基本信息,输入输出率等数据,它们虽然变化频率很低,但是数据量小,需要的请求时间少,为了保证数据的最新有效,所以采用了请求+超时机制,当有请求的时候,判断数据是否超时(超时时间自行定义),如果未超时,直接返回数据,如果超时就到设备端去访问新数据;再就是那些数据量庞大,变化率低的数据,如果没有用户强制刷新,我们就将其缓存起来,直到用户强制刷新时旧数据才失效。

另外还做了几个小图片准备用有“上一页”、“下一页”之类的上面。

L-20070228 - morningbzy - morningbzy 的博客

[1] 这里图片和文字水平居中对齐,用的方法是选中后,调整其段落格式的文本对齐方式为“居中”。

  评论这张
 
阅读(31)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017