2011-02-28 6 views
7

누군가가 GWT에서 캐싱의 개념을 간단히 설명 할 수 있습니까? 나는 이것을 여러 곳에서 읽었지만 제한된 지식으로 인해 이해할 수 없다. 이러한 nocache.js로GWT 캐싱 개념

는 cache.js

또는 영원히 클라이언트 캐시 파일을 다른 사물 또는 클라이언트에 의해 캐시 파일을 만들어하는 방법 다음 파일은 다음 서버에서 클라이언트를 변경받을 경우 이 파일을 다시 다운로드하십시오.

답변

2

This blog post에는 GWT 부트 스트랩 프로세스 (및 GWT 시스템의 다른 많은 부분)의 개요가 있습니다. 이는 캐시 된 것과 관련이 있으며 그 이유는 무엇입니까?

기본적으로 생성 된 nocache.js 파일은 생성 된 순열이 다운로드되어야 하는지를 결정하는 것이 유일한 목적 인 JS의 비교적 작은 비트입니다.

각 개별 순열은 사용자의 브라우저, 언어 등 특정 앱의 구현으로 구성됩니다. 이는 간단한 부트 스트래핑 코드보다 훨씬 많은 코드이므로 앱이 빠르게 응답 할 수 있도록 캐싱해야합니다. GWT 컴파일러에 의해 생성되는 cache.html 파일입니다.

앱을 다시 컴파일하고 배포하면 사용자가 nocache.js 파일을 정상적으로 다운로드하지만 브라우저에 앱의 새로운 기능과 함께 새로운 cache.html 파일을 다운로드하라는 메시지가 표시됩니다. 이제 다음에 앱을로드 할 때도 캐시됩니다.

19

일반적으로,이 파일의 세 유형 -

  1. 캐시 영원히
  2. 일부 파일이 캐시되지 않을 수

일부 시간

  • 캐시
  • 절대 캐시, 그리고 것 항상 "절대 캐시하지 않음"버킷에 있습니다. 그러나 가장 큰 성과는 두 번째 버킷의 파일을 체계적으로 영원히 캐시 할 수있는 파일로 변환하는 데 있습니다. GWT를 사용하면 여러 가지 방법으로 쉽게이 작업을 수행 할 수 있습니다.

    <md5>.cache.js 파일은 영원히 캐시해도 안전합니다. 파일이 변경되면 GWT에서 파일의 이름을 바꿀 것이므로 브라우저에서 다시 다운로드해야합니다.

    .nocache.js 파일을 절대 캐시해서는 안됩니다. 이 파일은 한 줄의 코드를 변경하고 다시 컴파일하는 경우에도 수정됩니다. nocache.js에는 <md5>.cache.js의 링크가 포함되어 있으므로 브라우저에 항상이 파일의 최신 버전이 있어야합니다.

    세 번째 버킷에는 이미지, CSS 및 애플리케이션에 포함 된 기타 모든 정적 리소스가 포함되어 있습니다. CSS 파일은 항상 변경되므로 브라우저의 캐시를 영원히 말할 수는 없습니다. 그러나 ClientBundle/CssResource을 사용하면 GWT가 파일을 관리합니다. CSS를 변경할 때마다 GWT는 파일의 이름을 바꿀 것이므로 브라우저에서 다시 다운로드해야합니다. 이를 통해 강력한 캐시 헤더를 설정하여 최상의 성능을 얻을 수 있습니다. .cache 일치 아무것도 들어

    1. - 요약

      ., far-in-the-future 만료 헤더를 설정하여 효과적으로 브라우저에 영구 저장합니다.

    2. .nocache와 일치하는 모든 항목., 브라우저에서 서버와의 자원의 유효성을 다시 확인하도록하는 캐시 헤더를 설정하십시오.
    3. 다른 모든 경우에는 자원을 변경하는 빈도에 따라 짧은 만료 헤더를 설정해야합니다.
    4. ClientBundle/CssResource를 사용해보십시오. 리소스의 이름을 * .cache 버킷으로 자동 변경합니다.
  • +0

    내 GWT 2.4 응용 프로그램은 .cache.js 대신 .cache.html 파일을 만듭니다. –

    +0

    이상하게도 GWT 애플리케이션이 두 가지있다. 하나는 cache.html을 생성하고 다른 하나는 cache.js를 생성한다. – GreenKiwi