2008-09-15 5 views
6

우리는 클라이언트가 영원히 애플릿의 버전을 캐싱하는 것처럼 보일 수 있습니다. <object> 태그 내에 <param name="cache_version"> 태그를 올바르게 사용하고 있습니다. 그렇게 생각합니다. 우리는 버전 문자열 7.1.0.40에서 7.1.0.42으로 이동하여 약 절반의 고객만을 다운로드했습니다.Java 애플릿은 영원히 캐시되고 새 버전을 다운로드하지 않습니까?

클라이언트가 실행중인 JRE 버전은 중요하지 않습니다. 우리는 사람들이 1.4, 1.5 및 1.6에서이 문제를 겪고있는 것을 보았습니다.

명시 적 캐시 버전에 대한 경험이 있습니까? cache_archive의 "Last-Modified"및/또는 "Content-Length"값 (Sun's Site)을 대신 사용하여보다 안정적으로 (속도 무시) 작동합니까?

는 참고로, 대상 블록은 다음과 같습니다

<object> 
    <param name="ARCHIVE" value="foo.jar"> 
    <param name="CODE" value="com.foo.class"> 
    <param name="CODEBASE" value="."> 
    <param name="cache_archive" value="foo.jar"> 
    <param name="cache_version" value="7.1.0.40"> 
    <param name="NAME" value="FooApplet"> 
    <param name="type" value="application/x-java-applet;jpi-version=1.4.2_13"> 
    <param name="scriptable" value="true"> 
    <param name="progressbar" value="true"/> 
    <param name="boxmessage" value="Loading Web Worksheet Applet..."/> 
</object> 

답변

9

불행하게도, 자바 플러그인의 다른 버전이 다른 캐싱 동작을합니다. Cache-Control 및 Last-Modified HTTP 헤더를 설정하는 것이 이상적인 솔루션이지만 JRE의 the most recent versions에서만 작동합니다.

유일한 해결책은 버전이 변경 될 때 응용 프로그램 jar의 이름을 바꾸는 것입니다 (파일 날짜를 기준으로 쿼리 문자열을 추가하는 등 다른 트릭을 시도 할 때 이상한 캐싱 동작을 보았습니다). 제대로 자동화 된 배치 시스템을 가지고 있다면 그렇게하기가 어렵지 않습니다.

0

this link 에 따르면 동일한 jar 파일이 "archive"및 "cache_archive"매개 변수로 나열되어서는 안됩니다. 이 경우 JAR 파일은 기본 브라우저 캐시를 사용하여 캐시됩니다.

+0

링크가 끊어진 것입니다. – coderama

1

Java Control Panel을 사용하여 Java 캐시에서 애플릿을 제거 할 수 있습니다.
예를 들어, 승 XP에서

Start -> Control Panel -> Java -> Temporary Internet Files[View]