2011-11-21 3 views
1

JSF/Richfaces/Seam/A4J를 사용하는 사이트에 대한 성능 향상을 제안 해 달라는 요청을 받았습니다.A4J JSF Richfaces에 필요한 JavaScript 파일 줄이기

내가 알아 차린 사실 중 하나는 A4J 용으로 많은 JavaScript가 다운로드 된 것 같습니다. 여기에 한 페이지에서 파일 목록은 다음과 같습니다

/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 

이 파일은 우리가 실행 또는 동적으로 우리의 HTML에 투입되고있는 A4J 명령에 따라 생성 된 JSF 버전에 대한 정적 있습니까? 나는 그들 중 대부분이 매우 작기 때문에 이들을 모두 단일 파일로 안전하게 병합 할 수 있는지 궁금합니다. 그렇게했다면 렌더링 된 HTML에이 파일이 추가되는 것을 어떻게 막을 수 있습니까?

답변

1

리소스 내용이 동적이 아닙니다. Richface는 구성 요소 종속성별로 특정 자원을 추가합니다.

성능이 처음부터 동일한 상황에있었습니다. 나는 js를 위해 하나의 압축 된 richfaces 묶음을 얻고 css를 위해 또 다른 압축 richfaces 묶음을 얻기 위해 내가 취한 행동을 할 것이다.

당신이 행해져 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> 

보다 다음 매개 변수를 추가하는 데 필요한 모든의

첫째, 페이지 및 사용하여 불을 지르고 또는 리소스를 추출하고 자신의 봉사 파일로 저장 다른 도구를로드 예 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이 단일 번들로 압축 할 의존 리소스 만로드합니다. 이 방법을 사용하면 유지 관리 기능이 향상됩니다.

+0

우수한 자료, 감사합니다. 나는 그것을 줄 것이다. –

관련 문제