Как заставить Java-апплет загружаться из кэша - PullRequest
10 голосов
/ 24 ноября 2010

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

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

Это мой код

<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 ]

13 голосов
/ 24 ноября 2010

Добавьте это внутри вашего тега апплета: <param name="cache_option" value="no">

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

3 голосов
/ 24 ноября 2010

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

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

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

1 голос
/ 24 ноября 2010

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

Вам необходимо настроить сервер так, чтобы он отправлял эти заголовки вместе с самим файлом класса (если возможно, изучите поддержку .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>

Редактировать: Также у Р. Бемроуза есть хорошая идея. Попробуйте добавить это к тегу апплета:

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

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

...