`
xiaojianbo
  • 浏览: 34477 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Richfaces性能优化

阅读更多

Richfaces性能优化

 

1.   rich:modalPanel标签的使用问题

发现问题:我们的页面使用rich:modalPanel比较多,而rich:modalPanel里面都加载了一些数据及渲染了一些标签,即使在没有显示的情况下,这些数据也会加载且标准也会渲染出来,这也是导致页面加载过慢的原因之一。

解决方案:当rich:modalPanel不显示的时候,我们可不渲染这些标签以及不加载数据来提升页面的显示速度,我们可把rich:modalPanel里面的内容单独做个页面片段,当rich:modalPanel显示的时候,我们执行一个JS脚本去临时加载页面片段的数据,然后回写到rich:modalPanel中。

 

2.   rich:dataTable的预加载问题

发现问题:数据列表的展示rich:dataTable是我们常用的标签,而性能不是很满意,因为rich:dataTable存在预加载的问题,也就是说在同一表单内发生任何ajaxrequest都会导致rich:dataTable预加载数据(就是重新从数据库查询一次数据,然后把数据组装到dataModel中),这种机制严重导致了列表页面的显示速度

解决方案一:我们可使用h:dataTable来替换rich:dataTable,尽量少使用rich:dataTableh:dataTable不会预加载数据,性能比较可观

解决方案二:我们可重写rich:dataTable标签的实现机制,去掉预加载数据,但不知道会不会引起一些问题,现在还没想明白rich:dataTable为什么要预加载数据。

 

3.   对于编辑,增加,显示是跳转到新页面的分开比较好

比如我们有个列表A.xhtml页面,点击其中的编辑或显示连接,跳转到B.xhtml页面,此页面加载了一些数据和标签,也判断了是编辑或显示,可能其中有一些数据只是用于编辑,而不是用于显示,但同样也加载了,会导致性能问题,如果我们把编辑页面和显示页面单独分开,这样我们在编辑页面就只加载需要的数据和标签,在显示页面也只加载需要的数据和标签,这样也简化了页面标签的结构。

对于编辑、增加、显示在同一页面的,不需要这样做,因为用ajax局部刷新了

 

4.   Richfaces解析器

Richfaces内置了几种解析器,TIDY解析器用于复杂的或非标准的标记,这些标记由过滤器做严格效验并更正,NEKO过滤器在解析代码没有严格效验,大大加快了ajax请求的处理,但使用时要确保应用程序标记是严格用于这个过滤器,否则可能会导致很多错误和恶化布局结果

所以说TIDY解析器相对NEKO解析器来说会慢很多,默认是TIDY解析器

<context-param>

  <param-name>org.ajax4jsf.xmlparser.NEKO</param-name>

  <param-value>NEKO</param-value>

 </context-param>

 <context-param>

  <param-name>org.ajax4jsf.xmlparser.ORDER</param-name>

  <param-value>.*\..*</param-value>

 </context-param>

需要加入nekohtml.jar(http://sourceforge.net/projects/nekohtml/)

 

5.   强制容器在发送到客户端之前压缩所有的Richfaces资源,包括图片、样式表、JavaScript等。它将大大的减少页面的加载时间。

    <context-param>  
<param-name>org.ajax4jsf.COMPRESS_SCRIPT</param-name>
 
<param-value>true</param-value>
 
</context-param>

注意:org.richfaces.LoadScriptStrategy参数让richfaces生成的页面里引用到所有jscss,并且是合并压缩过的版 本。因已经是压缩过的了,不需要再让org.ajax4jsf.COMPRESS_SCRIPT再压缩了 

6.   通过设置forceparserforcenotrf设置为false来最小化过滤和强制解析任何jsf页面的html语法检查器

    <filter>  
<filter-name>richfaces</filter-name>
 
<display-name>RichFaces Filter</display-name>
 
<filter-class>org.ajax4jsf.Filter</filter-class>
 
<init-param>
    
<param-name>forceparser</param-name>
<param-value>false</param-value>
 
</init-param>
 
<init-param>
    
<param-name>forcenotrf</param-name>
<param-value>false</param-value>
 
</init-param>
</filter>

 

7.   JSF优化技巧将保证所有和Richfaces相关的JavaScript、文件、库等在第一次请求到达时被下载到客户端,并且压缩JS

    <context-param>  
<param-name>org.richfaces.LoadScriptStrategy</param-name>
 
<param-value>all</param-value>
 
</context-param>

 

8.   JSF Richfaces优化将启用Richfaces组件的缓存,并将组件缓存到客户端来提高应用的性能

    <filter>  
<display-name>RichFaces Filter</display-name>
 
<filter-name>richfaces</filter-name>
 
<filter-class>org.ajax4jsf.Filter</filter-class>
 
<init-param>
    
<param-name>enable-cache</param-name>
 
<param-value>true</param-value>
    
</init-param>
 
</filter>

 

分享到:
评论

相关推荐

    richfaces性能优化.docx

    RichFaces 性能优化 RichFaces 是一个基于 Java 的 Ajax 框架,用于构建富互联网应用程序。然而,在使用 RichFaces 时,开发者经常会遇到性能问题。本文将讨论 RichFaces 的性能优化方法,帮助开发者提高应用程序的...

    jsf2.0新特性及richface优化总结

    6. **RichFaces性能优化策略**: - **压缩资源**:通过设置`&lt;context-param&gt;org.ajax4jsf.COMPRESS_SCRIPT&lt;/context-param&gt;`为`true`,可以压缩所有发送到客户端的RichFaces资源,如图片、CSS和JavaScript,以缩短...

    richfaces-ui-3.2.1

    这一版本对3.2.0进行了优化和修复,旨在提高性能和稳定性,同时可能引入了新的特性和改进。 在标签中提到的“ajax”和“ajax4jsf”,它们是RichFaces实现AJAX功能的关键。AJAX技术允许Web应用在后台与服务器进行...

    richfaces(里面包含JAR包)

    9. **性能优化**:由于RichFaces组件可能带来额外的客户端负担,理解如何优化组件渲染和AJAX请求是提高应用性能的关键。 10. **社区支持**:作为开源项目,RichFaces有一个活跃的社区,提供文档、教程、论坛支持,...

    jboss-richfaces-3.0.0

    **五、性能优化** RichFaces 3.0.0在设计时就考虑了性能,但实际应用中仍需根据项目需求进行调整。这可能包括优化AJAX请求的频率、减少不必要的组件渲染、合理使用缓存等。 **六、社区与文档支持** RichFaces拥有...

    richfaces参考文档

    它不仅包含了一系列的组件,如数据表、树形结构、日历、图表等,还提供了事件处理、皮肤定制以及性能优化等功能。 ### RichFaces 的主要特性 1. **AJAX 支持**:RichFaces 使用 A4J (Ajax for Java) 技术,允许...

    richfaces开发指南(英文版)

    性能优化与调试** - **Ajax优化**:通过设置Ajax响应缓存、延迟加载和事件合并来提升性能。 - **调试工具**:如RichFaces的Ajax Debug Console,可以帮助开发者识别和解决问题。 **7. 社区支持与资源** RichFaces...

    RichFaces 3.3 帮助文档(英文)

    - **Portlet支持:** 介绍了如何在Portlet环境中使用RichFaces,并提供了一些优化建议。 - **Sybase EAServer:** 对于使用Sybase EAServer的开发者,提供了特定的部署指南和注意事项。 - **Oracle AS/OC4J:** 针对...

    richfaces详细使用

    RichFaces凭借其强大的功能集、灵活的组件库、高效的资源管理和皮肤技术支持,已成为构建现代化、高性能Web应用程序的理想选择。掌握RichFaces的核心概念和技术要点,对于任何致力于提升Web开发效率、优化用户体验的...

    richfaces3.2用户手册的pdf版

    - **脚本和样式加载策略**:合理安排脚本和样式的加载顺序以优化页面性能。 - **请求错误和会话过期处理**: - **请求错误处理**:自动捕获并处理可能发生的请求错误。 - **会话过期处理**:当会话超时时采取适当...

    richfaces-ui-3.3.GA jar

    此版本可能包括性能优化、新特性以及对旧版本问题的修复。 5. **JAR 文件**:Java 应用程序的可部署单元,包含编译后的类文件和其他资源,通常用于在 Java 平台上分发和执行代码。 6. **集成到项目**:开发人员...

    RichFaces_3.3.3标签库手册

    这本手册不仅提供了详细的标签信息,还涵盖了错误处理、性能优化、国际化以及组件自定义等方面的指导。通过深入学习和实践,开发者可以充分利用RichFaces的功能,构建出既美观又高效的Web应用。 总而言之,...

    richfaces+jsf

    5. 测试和调试:运行应用程序,进行功能测试和性能优化。 总的来说,RichFaces与JSF的结合为开发人员提供了强大的工具集,用于构建具有高度交互性和用户体验的现代Web应用程序。通过学习和掌握这些技术,开发者可以...

    jsf最新版本jar包跟richfaces4.0完美结合

    5. **性能优化**:RichFaces 4.0对性能进行了优化,如延迟加载和资源合并,降低了服务器负载,提高了应用响应速度。 集成RichFaces到JSF项目中,通常涉及以下步骤: 1. **添加依赖**:在项目中引入RichFaces的JAR...

    richfaces-ui-3.3.0.GA 最新版

    总结,RichFaces UI 3.3.0.GA作为JSF开发的利器,以其丰富的组件库、强大的Ajax支持和优秀的性能优化,为开发者提供了高效、便捷的开发环境。通过深入理解和熟练应用,我们可以在Web应用开发中创造更丰富、更具吸引...

    Practical RichFaces

    六、最佳实践与性能优化 书中的内容不仅限于基本使用,还会讨论如何遵循最佳实践来提高代码质量和性能。例如,使用条件渲染减少不必要的网络传输,合理配置Ajax请求的缓存,以及如何利用RichFaces的批处理功能来优化...

    richfaces组件说明文档及使用实例

    - 为提高性能,谨慎使用Ajax,避免无谓的网络请求。 - 合理规划组件布局,以优化页面加载速度。 - 充分利用RichFaces的事件处理机制,降低服务器负担。 总之,RichFaces组件库提供了丰富的功能,使得开发高质量...

    richfaces 的一个web应用

    在实际应用中,考虑性能优化是非常重要的。这可能涉及到减少HTTP请求、优化JavaScript代码、合理使用缓存以及调整服务器配置以提高响应速度。 8. **兼容性和跨浏览器支持** RichFaces组件通常对主流浏览器有良好...

    richfaces_usersguide 3.3

    考虑到Web应用的多平台访问需求,RichFaces优化了对各种浏览器的支持,包括IE、Firefox、Chrome等,确保了用户在不同设备上的无缝体验。 三、入门指南:快速上手RichFaces ### 1. 下载并集成 首先,开发者需从官方...

Global site tag (gtag.js) - Google Analytics