Как заставить Java-апплет загружаться из кэша

мой друг и я разрабатываем небольшую игру, и мы хотим поделиться этапов развития с нашими друзьями. Поэтому я сделал эту маленькую страницу http://people.scs.carleton.ca / ~manders8/game.html

прямо сейчас это один .файл класса, который мы обновляем. Но по какой-то причине он всегда загружает старую версию. Я знаю, что есть способ отключить кэширование Java, но мои друзья не такие компетентные. Плюс, чтобы заставить людей играть в вашу игру, это должно быть очень легко и не требует, как 5 шагов с экранами выстрелов, чтобы попробовать его.

у меня есть этот тег:

<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="no-cache">
<meta http-equiv="Expires" content="-1">
<meta http-equiv="Cache-Control" content="no-cache">

потому что я думал, что это может быть связано с браузером, но это не помогает.

Это мой код

<applet code="com.murderbody.prototype.TitleScreen.class" codebase="http://people.scs.carleton.ca/~manders8/content/" width=640 height=380></applet>

изменен с апплета на:

<object type="application/x-java-applet;version=1.5" width="640" height="380">
     <param name="codebase" value="http://people.scs.carleton.ca/~manders8/content/">
     <param name="code" value="com.murderbody.prototype.TitleScreen.class">
     <param name="cache_option" value="no">
</object>

3 ответов


добавьте это в свой тег апплета:<param name="cache_option" value="no">

говоря о тегах апплетов, они устарели в течение многих лет; рассмотрите возможность использования object tag.


кэширование Java-апплетов может происходить на двух уровнях: браузер и плагин Java. Ваша проблема, кажется, с плагином. Я только что нашел это:

http://java.sun.com/products/plugin/1.3/docs/appletcaching.html

один из подходов, который используют некоторые люди, - это управление версиями ресурсов, т. е. создание нового имени файла апплета для каждой версии (лучше, если вы упакуете апплет в файл jar и переименуете jar для каждой новой версии, например titlescreen-1.2.23.сосуд.) Если у вас есть достойный инструмент сборки (ant, maven), который может автоматизировать это переименование для вас, как на уровне JAR, так и на уровне тегов, тем лучше.


эти теги будут делать чудеса, чтобы предотвратить страница кэширование. Однако апплет является отдельным. :)

вам нужно настроить сервер для отправки этих заголовков с самим файлом класса (если это возможно, исследовать .htaccess поддержка).

Если это невозможно, но у вас есть доступ к PHP или некоторому серверному языку сценариев, вы можете использовать что-то вроде этого:

<applet code="com.murderbody.prototype.TitleScreen.class?<?php echo rand(1, 10000);?>" codebase="http://people.scs.carleton.ca/~manders8/content/" width=640 height=380></applet>

Edit: кроме того, у R. Bemrose есть хорошая идея. Попробуйте добавить это к тегу апплета:

<param name="cache_option" value="no">

Если это окажется решением, обязательно примите его ответ:)