jsf-2 - Primefaces 4.0 资源压缩

标签 jsf-2 primefaces jboss7.x primefaces-extensions

我在 JBoss 7.1.1.Final 之上运行了 Primefaces 4.0。我正在使用 google webutilities ( https://code.google.com/p/webutilities/ ) 来压缩和组合我的 javascript 和 CSS 文件。当我在我的页面上运行 PageSpeed Insights 时,我所有的自定义 css 和 js 文件似乎都被压缩了,并且不会在页面上输出任何问题。但话说回来,所有 Primefaces 资源似乎都跳过了所有过滤器。这是我的 webutilities 配置:

<!-- UTF-8 Encoding filter -->
<filter>
    <filter-name>characterEncodingFilter</filter-name>
    <filter-class>com.googlecode.webutilities.filters.CharacterEncodingFilter</filter-class>
    <!-- init params  -->
    <init-param>
        <param-name>encoding</param-name>
        <param-value>UTF-8</param-value>
    </init-param>
    <init-param>
        <param-name>force</param-name>
        <param-value>true</param-value> <!-- true if you wanted to force encoding  -->
    </init-param>
    <init-param>
        <param-name>ignoreURLPattern</param-name>
        <param-value>.*\.(png|gif|jpg|tiff|bmp|mpg|jpeg)</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>characterEncodingFilter</filter-name>
    <url-pattern>*</url-pattern>
</filter-mapping>

<!-- Response cache filter -->
<filter>
    <filter-name>responseCacheFilter</filter-name>
    <filter-class>com.googlecode.webutilities.filters.ResponseCacheFilter</filter-class>
    <init-param>
        <param-name>acceptMIMEPattern</param-name>
        <param-value>text/javascript,application/javascript,text/css</param-value>
    </init-param>
    <init-param>
        <param-name>acceptURLPattern</param-name>
        <param-value>.*\.(js|json|css).*</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>responseCacheFilter</filter-name>
    <url-pattern>*.js</url-pattern>
    <url-pattern>*.json</url-pattern>
    <url-pattern>*.css</url-pattern>
</filter-mapping>

<!-- Compression filter -->
<filter>
    <filter-name>compressionFilter</filter-name>
    <filter-class>com.googlecode.webutilities.filters.CompressionFilter</filter-class>
    <init-param>
        <param-name>compressionThreshold</param-name>
        <param-value>512</param-value> <!--  anything above 512bytes  -->
    </init-param>
    <init-param>
        <param-name>ignoreURLPattern</param-name>
        <param-value>.*\.(png|gif|jpg|tiff|bmp|mpg|jpeg).*</param-value>
    </init-param>
    <init-param>
        <param-name>ignoreMimes</param-name>
        <param-value>images/*,video/*, multipart/x-gzip</param-value> <!-- ignore -->
    </init-param>
    <init-param>
        <param-name>ignoreUserAgentsPattern</param-name>
        <param-value>.*MSIE.*</param-value> <!-- regex -->
    </init-param>
</filter>
<filter-mapping>
    <filter-name>compressionFilter</filter-name>
    <url-pattern>*</url-pattern>
</filter-mapping>

<!-- Minify css, js and json filter -->
<filter>
    <filter-name>yuiMinFilter</filter-name>
    <filter-class>com.googlecode.webutilities.filters.YUIMinFilter</filter-class>
    <init-param>
        <param-name>lineBreak</param-name>
        <param-value>8000</param-value>
    </init-param>
    <init-param>
        <param-name>acceptMIMEPattern</param-name>
        <param-value>text/javascript,application/javascript,text/css</param-value>
    </init-param>
    <init-param>
        <param-name>acceptURLPattern</param-name>
        <param-value>.*\.(js|json|css).*</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>yuiMinFilter</filter-name>
    <url-pattern>*.js</url-pattern>
    <url-pattern>*.json</url-pattern>
    <url-pattern>*.css</url-pattern>
</filter-mapping>

我还尝试将以下参数设置为 web.xml:
<context-param>
    <param-name>org.primefaces.extensions.DELIVER_UNCOMPRESSED_RESOURCES</param-name>
    <param-value>false</param-value>
</context-param>
<context-param>
    <param-name>javax.faces.PROJECT_STAGE</param-name>
    <param-value>Production</param-value>
</context-param>

但是 PageSpeed 的输出仍然给了我以下如何获得更好的页面性能:
**Enable compression for the following resources to reduce their transfer size by 567.5KiB (75% reduction).**
Compressing http://localhost:8888/.../primefaces.js.xhtml?... could save 213.8KiB (79% reduction).
Compressing http://localhost:8888/.../jquery-plugins.js.xhtml?... could save 156.1KiB (72% reduction).
Compressing http://localhost:8888/.../jsf.js.xhtml?... could save 84.3KiB (78% reduction).
Compressing http://localhost:8888/.../jquery.js.xhtml?... could save 67.1KiB (65% reduction).
Compressing http://localhost:8888/.../primefaces.css.xhtml?... could save 42.3KiB (81% reduction).
Compressing http://localhost:8888/.../watermark.js.xhtml?... could save 3.3KiB (63% reduction).
Compressing http://localhost:8888/.../hotkey.js.xhtml?... could save 660B (45% reduction).

**Minify JavaScript for the following resources to reduce their size by 84.4KiB (20% reduction).**
Minifying http://localhost:8888/.../jsf.js.xhtml?... could save 78.4KiB (72% reduction). See optimized content
Minifying http://localhost:8888/.../jquery-plugins.js.xhtml?... could save 3.6KiB (2% reduction). See optimized content
Minifying http://localhost:8888/.../jquery.js.xhtml?... could save 551B (1% reduction). See optimized content

**Minify CSS for the following resources to reduce their size by 4.1KiB (8% reduction).**
Minifying http://localhost:8888/.../primefaces.css.xhtml?... could save 2.7KiB (6% reduction). See optimized content
Minifying http://localhost:8888/.../theme.css.xhtml?... could save 1.4KiB (24% reduction) after compression. See optimized content

**605.3KiB of JavaScript is parsed during initial page load. Defer parsing JavaScript to reduce blocking of page rendering.**
http://localhost:8888/.../primefaces.js.xhtml?... (219.5KiB)
http://localhost:8888/.../jquery-plugins.js.xhtml?... (191.8KiB)
http://localhost:8888/.../jquery.js.xhtml?... (95.3KiB)
http://localhost:8888/.../tooltip.js.xhtml?... (34.5KiB)
http://localhost:8888/.../jsf.js.xhtml?... (25.4KiB)
http://localhost:8888/.../primefaces-extensions.js.xhtml?... (19.7KiB)
http://localhost:8888/page/my/toolbox/ (13.2KiB of inline JavaScript)
http://localhost:8888/.../watermark.js.xhtml?... (4.7KiB)
http://localhost:8888/.../hotkey.js.xhtml?... (1.2KiB)

对我来说,Primefaces + Primefaces 扩展资源的开销似乎很大。知道如何让这些资源通过 WebUtilities 过滤器或至少启用对这些文件的压缩吗?感谢帮助!

最佳答案

经过一番玩耍后,我发现这并没有显示为缩小,因为它是从浏览器缓存中提取文件。尝试通过右键单击网络选项卡中的资源来清除缓存。刷新页面后,您应该会看到从服务器中提取的压缩文件的响应状态为 200(OK)而不是 304(未修改)。

编辑:您可能还需要注释掉 web.xml 中的“响应缓存过滤器”,直到您看到文件正在被压缩。

enter image description here

关于jsf-2 - Primefaces 4.0 资源压缩,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19443545/

相关文章:

ajax - PrimeFaces 在按下回车键时禁用提交

jsf - 在 JSF 数据表中显示 Hibernate/JPA 结果导致 : java. lang.NumberFormatException:对于输入字符串: "[propertyname]"

java - 从 EJB 调用的事务中的过程在 JBoss AS 7.1 中获取 ARJUNA016051 : thread is already associated with a transaction!

java - 在 JBos 的 servlet 中使用 TCP 套接字

jsf-2 - 覆盖 <ui :define>

java - Primefaces selectOneMenu 不会在更改时执行

java - JSF2.0 @EJB 注入(inject) @ViewScoped 导致 MyFaces 变为 CFNE

java - JSF 错误消息和程序卡住。 JSON 解析错误和 primefaces

java - 使用 Intellij IDEA 在 tomcat 中重新加载 primefaces 文件

playframework - 玩! JBoss AS 7框架部署,如何初始化数据库?