【问题标题】:JSF Richfaces frontend performance tuningJSF Richfaces 前端性能调优
【发布时间】:2010-10-27 20:32:33
【问题描述】:

我使用 MyFaces 1.2.6 和 Richfaces 3.3.1GA(刚刚升级)开发了一个 Web 应用程序。 尽管易于使用,但我发现 Richfaces 组件非常慢。

我还发现他们并没有真正利用浏览器缓存机制,他们在每次请求和其他事情时都会发送一些糟糕的 JS 文件。 我真的很想应用“高性能网站”一书中描述的一些规则,但我无法更改生成的 js 和 HTML 代码。

有人对使用 Richfaces 进行前端性能调整有一些技巧吗?

谢谢。

【问题讨论】:

    标签: java javascript performance jsf richfaces


    【解决方案1】:

    要添加到Damo,您还可以添加一个小过滤器来缓存此类js或图像以提高性能。但如果打算缓存的文件涉及频繁更新,请谨慎执行此操作。

    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);
            }
      }
    

    【讨论】:

      【解决方案2】:

      您可以使用: org.ajax4jsf.DEFAULT_EXPIRE 31536000

      这样所有的js、css文件(由richfaces生成)在浏览器上缓存1年。 这确实提高了我们项目的速度。

      另外,我们不用担心如果我们更改richfaces版本,因为当我们更改richfaces版本时,它会生成不同的文件。

      【讨论】:

        【解决方案3】:

        阅读this article

        您是否使用 Firebug + YSlow 来检查缓存中存储的内容?使用 web.xml org.richfaces.LoadScriptStrategy 设置,您可以告诉 Richfaces:

        • 将所有脚本加载到一个文件中。
        • 不加载任何脚本(您可以自己执行 - 例如,按照您书中规定的方式)。
        • 在需要时加载脚本(默认)。

        但是一些基本原则:

        • 永远不要在你的 getter 中加入逻辑。 它们被多次调用并且 应该只返回一些东西 由另一种方法填充。为了 例如,如果您正在链接 下拉菜单一起使用 a4j:support 第一个标签 带有加载的动作属性 然后在何时检索的数据 你重新渲染第二个。

        • 使用ajaxSingle="true" 除非 你实际上想发送整个 表单返回服务器。

        • 如果你不使用丰富的组件 只需要一个普通的。例如 不要使用rich:dataTable,除非你 正在利用一些 它具有超越的功能 h:dataTable

        【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-04-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-12
        • 1970-01-01
        相关资源
        最近更新 更多