2008-11-29 1 views
7

음 .. 우리는 struts2 ajax 기능을 사용하여 j2ee 애플리케이션을 개발했습니다. dojo 구현은 매우 느리다. 우리는 다음 작업을 수행했습니다 : 1. Dojo 라이브러리의 사용자 빌드. (240kb에서 350kb로 증가한 dojo.js) 2. 스트럿츠 항아리에서 모든 정적 물건을 꺼내 외부에 두었습니다.Struts 2 및 Dojo 파일이 너무 많아 사이트 성능에 영향을 미칩니다.

성능이 크게 향상되었습니다. 그러나 여전히 350kb 크기로 추측 할 수있을만큼 무겁습니다.

struts2 ajax가 무거울 것으로 생각하십니까? 또는 가벼운 구현이 있습니까?


편집 : 응용 프로그램과 Firebug 및 YSlow를 사용했습니다. 상당히 아래에 언급되어 내 상황 개선 변화의 커플 : 도장의

  1. 사용자 지정 빌드는
  2. 는 스트럿츠 항아리 밖으로 정적 파일을 이동 (큰 거래를 도움) (I의 수/O를 감소)
  3. 조정 응답을 gzip으로하는 서버
  4. 사이트에서 이미지의 수를 줄이십시오 (1/3 응답 크기를 감소). (이 분명하다)

추가 변경에 계속 업데이트 예정 ..

답변

8

우선 캐싱을 용이하게하기 위해 서버에서 모든 작업을 수행했는지 확인하십시오 (예 : 올바른 HTTP 헤더, 압축, 서버 측 캐싱, 업스트림 캐시 등). 자세한 내용은 Improving performance…을 참조하십시오.

목표는 가능한 한 많은 I/O를 줄이는 것입니다. — Firebug 또는 기타 네트워크 트래픽 모니터링 도구를 사용하여 얼마만큼주고 받는지 확인할 수 있습니다. I/O 요청 수와 총 바이트 수를 최소화하십시오.

동적 데이터에도 적용됨을 잊지 마세요. — 여러 가지 관련 요청을 하나로 묶고, 보내고받는 죽은 나무를 모두 제거하고 변경하지 마십시오.

맞춤 빌드 및 서버 측 조작으로 도움이되지 않는 경우 웹 앱을보다 가벼운 구조로 재구성하는 것이 좋습니다. 예 :

  • 위의 링크에서 설명한 스플래시 화면 기술을 평가합니다.
  • 다른 양식 위젯을 많이 사용하는 경우 실제로 필요한지 확인하고 "input", "button", "textarea", "select"와 같은 일반 DOM 요소로 되돌아갑니다.
  • 레이아웃 위젯에서도 마찬가지입니다. 간단한 CSS가 당신을 도울 수 있는지보십시오.
  • 하나의 모 놀리 식 dojo.js 대신 레이어로 건물 Dojo를 평가하면 필요한 하위 세트 만 웹 페이지에로드됩니다. The Package System and Custom Builds에서 세부 사항을보십시오.

지난 2 년 동안 Dojo를 사용하여 웹 응용 프로그램을 구축 나는 최종 사용자가 완전히 받아 들일 때까지 "빨리", "신속하게" 및 "경량".

+0

안녕하세요, Eugene .. 보통 300+ kb의 dojo.js 파일 크기가 있습니까? 이것이 나의 관심사 중 하나이기 때문에 .. 고마워. – Satya

+0

베이스는 26k입니다. 300k는 다른 물건이 많이 포함되었음을 의미합니다. –

0

마지막으로 struts는 Dojo 릴리스 (0.4 세)는 2 세가됩니다. Dojo는 성능이 크게 향상되고 코드 크기가 감소한 0.9/1.0 버전을 다시 작성했습니다. 최신 버전의 Dojo (현재 버전은 1.2.3)를 실행하고 위의 Eugene 빌드 및 팁을 사용해야합니다.

+0

Struts와 향상된 dojo의 호환성은 얼마나 좋습니까? 나는 그것을 시도하지 않았지만 나는 그것을 의심한다. 감사. – Satya

2

먼저 FAQ를 준수합니다 : http://struts.apache.org/2.x/docs/performance-tuning.html

나는 보통 도장을 내장 한 struts2 아약스 테마를 사용하는 내 자신의 테마를 대신 다시 쓰기 내가 사용하려는 어떤 툴킷 사용할 수있는이 방법을. (jQuery). jar 파일의 템플릿 폴더를 webapp의 루트 웹 디렉토리에 복사했을 때 가장 큰 성능 향상을 보았습니다.