beforePhase使用不当导致ADF应用性能问题
来源:互联网 发布:c语言编程射击小游戏 编辑:程序博客网 时间:2024/05/18 19:41
在使用Oracle ADF进行Fusion Web应用开发时,有时候希望在页面显示之前进行一些逻辑处理,自然会想到使用生命周期的事件,
JSF(Oracle ADF基于JSF)页面的生命周期共分为6个生命周期阶段,而每个阶段之前和之后出发的事件,被称为阶段事件,这些事件由
listener处理,listener的配置可以查看web配置文件。
而在JSF页面的定义中,通过<f:view beforePhase=”#{backingbeanName}”>或<f:view afterPhase=”#{backingbeanName}”>来指定,
而开发人员可以通过继承javax.faces.event包中PhaseListener接口实现阶段listener,这个接口定义了3个方法:
- PhaseId getPhaseId()
- void afterPhase(PhaseEvent)
- void beforePhase(PhaseEvent)
getPhaseId方法返回何时提交阶段事件到listener,在不指定阶段的情况下,阶段listener的beforePhase和afterPhase方法将在每个生命周期中调用6次,即每个生命周期阶段调用一次。
如下的代码示例:
但是上面这样不指定生命周期阶段的用法通常情况下是不合理的,如果不指定阶段则意味着所有阶段都会执行代码,在实际的应用中不太可能需要这样,
而如果你的逻辑处理需要花费很长时间的话,由于错误的使用可能导致页面显示的严重性能问题,因此在往beforePhase和afterPhase方法中添加业务逻辑时,
需要明确根据阶段来执行,明确指定在哪个阶段执行代码:
本文转自Oracle Seeker:http://oracleseeker.com/2009/06/18/resource_bundle_casue_performance_issue/
- beforePhase使用不当导致ADF应用性能问题
- 对JavaEE的十大不当使用导致的性能问题
- StringBuffer使用不当,引起的性能问题
- Android中Handler使用不当导致内存泄露的问题
- RabbitMQ使用不当导致的队列堵塞问题及解决办法
- Protobuf使用不当导致的程序内存上涨问题
- RabbitMQ使用不当导致的队列堵塞问题及解决之道
- ArrayList使用不当导致ListActivity失去响应
- simple_html_dom使用不当导致的内存泄漏
- TransitionDrawable使用不当导致内存泄露
- mysql limit 使用不当导致的bug
- Messenger使用不当导致的内存泄漏
- stl map find使用不当导致的低概率core dump问题的定位
- 异常的错误使用导致性能问题
- 由Memcached使用不当而引发性能问题的两个经验总结
- ADF(BC)--当使用绑定VO的<af:table>时可能会导致的内存问题
- 关于db2数据库参数设置不当导致的问题
- pcb地线布置不当导致单片机复位问题
- apache并发数调整
- mysql 中数学函数的使用
- 安装Flash player debug 时 出现 正尝试安装的adobe flash player不是最新版本 的解决方法
- apache WEB应用的容量规划
- 浅谈学与玩
- beforePhase使用不当导致ADF应用性能问题
- 远程如何启用Windows 2003的桌面
- android中的progressbar
- 为何敏捷将成为主流
- CDMA和GSM
- 在Android中实现多线程同步
- SQL(收藏)查询每个部门工资前三名的员工信息
- 什么叫高级界面MIDle
- 数据库连接字符串