Java JSF前端性能调优
我使用MyFaces1.2.6和Richfaces 3.3.1GA(刚刚升级)开发了一个web应用程序。 尽管使用起来很方便,但我发现Richfaces组件非常慢 我还发现,他们并没有真正利用浏览器缓存机制,每次请求和其他事情,他们都会发送一些糟糕的JS文件。 我真的很想应用“高性能网站”一书中描述的一些规则,但我不能更改反生成的js和HTML代码 有人对使用Richfaces进行前端性能调优有什么建议吗 谢谢。读一读 您是否使用Firebug+YSlow检查缓存中存储的内容?使用web.xmlJava JSF前端性能调优,java,javascript,performance,jsf,richfaces,Java,Javascript,Performance,Jsf,Richfaces,我使用MyFaces1.2.6和Richfaces 3.3.1GA(刚刚升级)开发了一个web应用程序。 尽管使用起来很方便,但我发现Richfaces组件非常慢 我还发现,他们并没有真正利用浏览器缓存机制,每次请求和其他事情,他们都会发送一些糟糕的JS文件。 我真的很想应用“高性能网站”一书中描述的一些规则,但我不能更改反生成的js和HTML代码 有人对使用Richfaces进行前端性能调优有什么建议吗 谢谢。读一读 您是否使用Firebug+YSlow检查缓存中存储的内容?使用web.xml
org.richfaces.LoadScriptStrategy
设置,您可以告诉richfaces:
- 将所有脚本加载到一个文件中李>
- 不要加载脚本(你自己做——比如按照书中规定的方式)
- 在需要时加载脚本(默认设置)
- 永远不要把逻辑放在你的getter中。
它们被多次调用,并且
应该已经归还了一些东西
由另一个方法填充。对于
例如,如果您正在链接
下拉列表一起使用
a4j:支持第一个标签上的标签 具有加载的操作属性 然后在以下情况下检索的数据: 你重播第二个
- 使用
除非 你真的想把整个 表单返回到服务器ajaxSingle=“true”
- 如果需要,请不要使用富组件
只需要一个普通的。例如
不要使用
,除非 正在利用一些 它拥有的功能远远不止于此rich:dataTable
h:dataTable
此外,我们不必担心如果更改richfaces版本,因为更改richfaces版本时会生成不同的文件。要添加到Damo,您还可以添加一个小过滤器来缓存此类js或图像,以提高性能。但是,如果用于cach的文件涉及频繁的更新,则在执行此操作时要谨慎
private void cacheImages(HttpServletRequest request,
HttpServletResponse response) {
try {
String requestPath = request.getRequestURI();
if (requestPath != null) {
if (requestPath.contains("/images/")
|| requestPath.contains("/scripts/")
|| requestPath.endsWith(".js")
|| requestPath.endsWith(".gif")) {
response.setHeader("Cache-Control", "max-age=36000");
}
}
} catch (RuntimeException e) {
// do nothing except log
Log.error(this, e);
}
}
+1.这是Dan Allen的第二篇文章(他是这两篇文章的作者,也是Seam in Action的作者):