Модераторы: LSD, AntonSaburov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Тестирование апплета в браузере, Браузер "помнит" апплет до изменений 
:(
    Опции темы
lihusha
Дата 1.7.2009, 15:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 73
Регистрация: 8.6.2008

Репутация: нет
Всего: нет



Здравствуйте . Подскажите, кто знает , как бороться с кэшированием апплета в Opera ? 
Делаю изменения в апплете , а в браузере -- без изменений . 
После удаления личных данных и закрытия - отрытия браузера - все нормально.
Нельзя ли подгружать новую версию апплета в Opera более простым способом.


С Mozilla и IE -- все нормально.

Это сообщение отредактировал(а) lihusha - 1.7.2009, 16:30
PM MAIL   Вверх
LSD
Дата 1.7.2009, 16:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 9
Всего: 538



Ctrl+F5 не помогает?


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
lihusha
Дата 1.7.2009, 16:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 73
Регистрация: 8.6.2008

Репутация: нет
Всего: нет



Цитата(LSD @ 1.7.2009,  16:44)
Ctrl+F5 не помогает?

имеется в виду в браузере ?
нет , не помогает
PM MAIL   Вверх
COVD
Дата 3.7.2009, 05:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 26.7.2005

Репутация: 1
Всего: 43



Что такое "личные данные"? Обновление кеша должно происходить так (при классическом описании апплета тагом applet) - браузер шлет запрос на сервер и получает время создания (версию) файла аплета (обычно это jar). Если версия отличается от имеющейся в кеше, то файл загружается и кеш обновляется. У меня было предположение, что иногда новая версия не запускается из-за ошибок в апплете и тогда запускается старая версия из кеша. После исправления ошибок (перекомпиляции) новая версия принималась. Но были также и случаи, что новая исправная версия не принималась некоторыми клиентами и им помогало очищение локального кеша (в панели java-plugin: ControlPanel->Java->General-> TemporaryInternetFiles). Для полного избавления от проблемы мы просто переименовывали jar файл, добавляя к его имени номер версии (соответственно надо редактировать html). Хлопотно, но надежно. 

А искать причину, почему именно в какой-то Опере что-то не срабатывает - тухлое дело. Пока разберетесь, выйдут новые версии и в Опере будет срабатывать, но не будет срабатывать в Оперетте. Хотя java-plugin и улучшен в последних версиях java (но и новых багов наверное добавили как водится), все же смешивать коктейль из технологий (html, апплет) лучше избегать. На мой взгляд. Надежнее что-то одно. Или html интерфейс, или java (например, WebStart).   
PM MAIL   Вверх
lihusha
Дата 3.7.2009, 12:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 73
Регистрация: 8.6.2008

Репутация: нет
Всего: нет



Спасибо , COVD, это действетельно надежный способ.
Цитата

все же смешивать коктейль из технологий (html, апплет) лучше избегать.


Что Вы имеете в виду ?
Вообще не использовать  апплеты ?

У Вас случайно не завалялась ссылка на туториал по WebStart для начинающих ?


Это сообщение отредактировал(а) lihusha - 3.7.2009, 12:25
PM MAIL   Вверх
COVD
Дата 3.7.2009, 18:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 26.7.2005

Репутация: 1
Всего: 43



Цитата

Что Вы имеете в виду ?
Вообще не использовать  апплеты ?


Если значительная часть функциональности приложения приходится на апплет, то лучше перейти полностью на java WebStart. Наоборот, если апплет служит лишь небольшой добавкой к html интерфейсу (календарь какой-нибудь), то может быть лучше попытаться сделать то же самое на javascript. 

Однако Sun предприняло усилия по продвижению java в интернет и сейчас у апплетов уже нет былых ограничений по памяти и влияние браузера уменьшено, т.е. апплеты приблизились к возможностям WebStart приложения. Как на самом деле я не знаю, потому что мы давно отказались от апплетов в пользу WebStart. 

Кроме того, недавно появилась технология JavaFX, которая базируется на WebStart и работает в том числе и в браузере как часть html интерфейса. Это тоже альтернатива апплетам - http://javafx.com/samples/.

Цитата

У Вас случайно не завалялась ссылка на туториал по WebStart для начинающих ?


http://java.sun.com/docs/books/tutorial/de...tart/index.html





Это сообщение отредактировал(а) COVD - 3.7.2009, 18:42
PM MAIL   Вверх
lihusha
Дата 3.7.2009, 22:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 73
Регистрация: 8.6.2008

Репутация: нет
Всего: нет



Весьма признателен Вам за информацию.

Добавлено через 14 минут и 30 секунд
Общая информация.
В моем случае в работе клиент-серверного приложения возникает исключение (повторюсь , только в опере).
Вот часть стектрейса данного исключения.

Код

at com.opera.URLConnection.getInputStream(URLConnection.java:125)


импорта com.opera.URLConnection и близко нет в моем исходнике...


Исключение возникло в сточке 

Код

//connection -- HttpURLConnection;
InputStreamReader reader = new InputStreamReader(connection.getInputStream(),"UTF-8");


Так, апплет должен соединиться с сервером, но тут вмешивается браузер опера и подставляет какие-то свои данные.

PM MAIL   Вверх
COVD
Дата 3.7.2009, 23:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 26.7.2005

Репутация: 1
Всего: 43



Что сообщает исключение?
PM MAIL   Вверх
lihusha
Дата 3.7.2009, 23:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 73
Регистрация: 8.6.2008

Репутация: нет
Всего: нет



exception.getMessage() = имя сервера

Это сообщение отредактировал(а) lihusha - 3.7.2009, 23:57
PM MAIL   Вверх
COVD
Дата 4.7.2009, 15:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 26.7.2005

Репутация: 1
Всего: 43



Цитата

exception.getMessage() = имя сервера

 smile 

Если это действительно проблема в Опере и люди с этим сталкивались, то поиск в интернете по тексту исключения даст ссылки на обсуждения. Также возможно это ваша неточность в применении HttpURLConnection - другие браузеры "прощают", а Опера - нет? Приведите код. 
Можно также посмотреть, что браузер отправляет-принимает с сервера для разных типов браузеров. Для этого надо установить анализатор сетевого трафика. Например, бесплатный http://www.wireshark.org/ .   
PM MAIL   Вверх
lihusha
Дата 4.7.2009, 16:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 73
Регистрация: 8.6.2008

Репутация: нет
Всего: нет



Часть кода метода , использующего HttpURLConnection

Код

//String serverUrl = "адрес сервера";
URL server = new URL(getCodeBase(),serverURL);
HttpURLConnection connection = (HttpURLConnection) server.openConnection();
connection.setDoOutput(true);

String time = "someData";
String data = URLEncoder.encode("mode", "UTF-8") + "=" + URLEncoder.encode("update", "UTF-8");
data += "&" + URLEncoder.encode("time", "UTF-8") + "=" + URLEncoder.encode(time, "UTF-8");

OutputStreamWriter writer = new OutputStreamWriter(connection.getOutputStream(),"UTF-8");

writer.write(data);
writer.flush();
//пробовал закрывать поток и оставлять его открытым
//writer.close();

InputStreamReader reader = new InputStreamReader(connection.getInputStream(),"UTF-8");
int read = 0;
String encodeMessages = "";
for (; (read = reader.read()) != -1;)
{
     encodeMessages += (char) read;
}
reader.close();
String decodeMessages = URLDecoder.decode(encodeMessages, "UTF-8");


PM MAIL   Вверх
COVD
Дата 4.7.2009, 16:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 26.7.2005

Репутация: 1
Всего: 43



У вас ведь POST, а по умолчанию GET. Поэтому надо явно указать 
Код

connection.setRequestMethod("POST");

PM MAIL   Вверх
lihusha
Дата 4.7.2009, 17:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 73
Регистрация: 8.6.2008

Репутация: нет
Всего: нет



Цитата(COVD @  4.7.2009,  16:55 Найти цитируемый пост)
У вас ведь POST, а по умолчанию GET. Поэтому надо явно указать код Java1:connection.setRequestMethod("POST");


не помогло

PM MAIL   Вверх
COVD
Дата 4.7.2009, 19:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 26.7.2005

Репутация: 1
Всего: 43



Вы его в нужном месте поставили? 
Код

URL server = new URL(getCodeBase(),serverURL);
HttpURLConnection connection = (HttpURLConnection) server.openConnection();
connection.setDoOutput(true);
connection.setRequestMethod("POST");


Других гипотез у меня нет. Проверьте как-нибудь, отправляются ли данные на сервер. Это происходит в момент когда вы переходите к чтению,т.е. на вызове 
Код

InputStreamReader reader = new InputStreamReader(connection.getInputStream(),"UTF-8");

После этой строки уже ничего писать в данное соединение нельзя, поэтому writer можно перед чтением смело закрывать.

Это сообщение отредактировал(а) COVD - 4.7.2009, 19:24
PM MAIL   Вверх
lihusha
Дата 4.7.2009, 19:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 73
Регистрация: 8.6.2008

Репутация: нет
Всего: нет



Цитата(COVD @  4.7.2009,  19:20 Найти цитируемый пост)
Вы его в нужном месте поставили? 


Да , именно здесь.

Цитата(COVD @  4.7.2009,  19:20 Найти цитируемый пост)
Проверьте как-нибудь, отправляются ли данные на сервер.


Проверил , данные не отправляются.
Но -- не отправляются , опять же , именно в опере.







Это сообщение отредактировал(а) lihusha - 4.7.2009, 19:53
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Апплеты | Следующая тема »


 




[ Время генерации скрипта: 0.0939 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.