Вопрос

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

Прямо сейчас это один файл .class, который мы обновляем. Но по какой-то причине это всегда загружает старую версию. Я знаю, что есть способ отключить кэширование 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>
Это было полезно?

Решение

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

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

Другие советы

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

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

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top