Java 애플릿이 영원히 캐시되고 새 버전을 다운로드하지 않습니까?

StackOverflow https://stackoverflow.com/questions/66875

  •  09-06-2019
  •  | 
  •  

문제

클라이언트가 애플릿 버전을 영원히 캐싱하는 것처럼 보이는 경우가 있습니다.우리는 <param name="cache_version"> 태그를 올바르게 지정하세요. <object> 태그라고 생각합니다.우리는 버전 문자열에서 갔다 7.1.0.40 에게 7.1.0.42 이로 인해 고객 중 약 절반만이 다운로드를 시작했습니다.

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

명시적 캐시 버전을 사용해 본 경험이 있는 사람이 있나요?대신에 의존하는 것이 더 안정적으로 작동합니까(속도 무시)? cache_archive의 "Last-Modified" 및/또는 "Content-Length" 값(기준: 썬의 사이트)?

참고로 객체 블록은 다음과 같습니다.

<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>
도움이 되었습니까?

해결책

불행하게도 Java 플러그인 버전마다 캐싱 동작이 다릅니다.Cache-Control 및 Last-Modified HTTP 헤더를 설정하는 것이 이상적인 솔루션이지만 다음에서만 작동합니다. 최신 버전 JRE의.

작동이 보장되는 유일한 해결책은 버전이 변경될 때 애플리케이션 jar의 이름을 바꾸는 것입니다(파일 날짜를 기반으로 쿼리 문자열을 추가하는 것과 같은 다른 트릭을 시도할 때 이상한 캐싱 동작을 보았습니다).적절하게 자동화된 배포 시스템이 있다면 이는 그리 어렵지 않습니다.

다른 팁

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

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

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

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top