【问题标题】:Reduce JavaScript files needed for A4J JSF Richfaces减少 A4J JSF Richfaces 所需的 JavaScript 文件
【发布时间】:2012-01-03 02:08:47
【问题描述】:

有人要求我为使用 JSF/Richfaces/Seam/A4J 的网站提出一些性能改进建议。

我注意到的一件事是,似乎有很多 JavaScript 正在为 A4J 下载。这是来自一页的文件列表:

/a4j/g/3_3_3.Finalorg.ajax4jsf.javascript.AjaxScript        
/a4j/g/3_3_3.Finalorg.ajax4jsf.javascript.PrototypeScript   
/a4j/g/3_3_3.Finalorg.ajax4jsf.javascript.ImageCacheScript  
/a4j/g/3_3_3.Finalorg/richfaces/renderkit/html/scripts/browser_info.js
/a4j/g/3_3_3.Finalorg/ajax4jsf/javascript/scripts/form.js   
/a4j/g/3_3_3.Finalscripts/tabPanel.js   
/a4j/g/3_3_3.Finalorg/richfaces/renderkit/html/scripts/skinning.js  
/a4j/g/3_3_3.Finalprototype.js  
/a4j/g/3_3_3.Finalscriptaculous.js

这些文件对于我们正在运行的 JSF 版本是静态的,还是根据放入我们 html 的 A4J 命令动态创建的?我想知道是否可以安全地将所有这些合并到一个文件中,因为它们中的大多数都非常小?如果我这样做了,我将如何阻止这些文件被添加到呈现的 HTML 中?

【问题讨论】:

    标签: java jsf richfaces ajax4jsf


    【解决方案1】:

    资源内容不是动态的。 Richfaces 为每个组件的依赖项添加特定的资源。

    我也处于同样的情况,即性能是第一位的。我将介绍我已经采取的行动,以获得一个用于 js 的压缩 Richfaces 包和另一个用于 css 的包。

    首先需要在yout web.xml中添加如下参数

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

    然后,加载一个页面并使用 firebug 或任何其他工具提取资源并将它们保存到您自己的服务文件中,例如richfaces.bundle.js 和richfaces.bundle.css。

    之后,关闭脚本和样式加载:

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

    另一种方法是使用JAWR,它允许处理单独的资源文件并将它们压缩和捆绑提供。 使用 JAWR,您可以提取 Richfaces 组件特定资源并根据需要加载它们。例如具有数据表和 ajax 行为的页面将仅加载 JAWR 将压缩到单个包中的依赖资源。 这种方法允许更好的维护能力。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-12
      • 1970-01-01
      • 2013-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-27
      相关资源
      最近更新 更多