Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Апплеты > [noob] пара вопросов о Java в браузерах


Автор: 1234ru 28.10.2010, 15:31
Возникла необходимость загрузки больших (до неск. Гб) файлов через веб-интерфейс (т.е. кнопка, по нажатию открывающая диалог выбора файла, полоса хода загрузки, ловля ошибок соединения и т.п.).

Автор темы - полный ноль в Java, и чтобы поставить задачу человеку, требуется узнать несколько вещей:

1. Для выполнения Java-кода на клиентской машине явно нужна какая-то дополнительная штука (кажется, это называется Java-машина). Так вот, вопрос: если окажется, что на клиенте её нет, то что произойдет? Она загрузится сама? 
Каких она примерно размеров?
И насколько просто для рядового пользователя (или чему-то вместо пользователя - например, антивирусу) отменить её загрузку?

2. Насколько можно минимизировать Java-часть на клиенте?
Хотелось бы это сделать в максимально возможной степени.
Идея в том, чтобы всю визуальную нагрузку переложить на Javascript. На него же переложить слежение за действиями пользователя в браузере, чтобы он при надобности пинал Java-часть и передавал ей управление (но только для тех частей, которые он сам не может). Или так нельзя?

3. Нужно ли для Java что-то дополнительное на сервере?


Имеющиеся open-source решения недостаточно настраиваемы (а если настраиваемы - то за деньги, отчего легче уж найти кого-то специально для себя). 

Автор: LSD 28.10.2010, 17:50
Цитата(1234ru @  28.10.2010,  16:31 Найти цитируемый пост)
Для выполнения Java-кода на клиентской машине явно нужна какая-то дополнительная штука (кажется, это называется Java-машина). Так вот, вопрос: если окажется, что на клиенте её нет, то что произойдет? Она загрузится сама?

При использовании http://forum.vingrad.ru/forum/topic-75496.html, пользователь получит запрос на установку плагина для браузера.



Цитата(1234ru @  28.10.2010,  16:31 Найти цитируемый пост)
Каких она примерно размеров?

JRE весит ~16Мб. Онлайн установщик может сэкономить мегабайт другой, но порядок тот же. Как я понимаю, если человек хочет грузить гигабайты, то такой размер не представляет проблем smile



Цитата(1234ru @  28.10.2010,  16:31 Найти цитируемый пост)
И насколько просто для рядового пользователя (или чему-то вместо пользователя - например, антивирусу) отменить её загрузку?

Удали JRE и зайди на http://www.java.com/ru/download/installed.jsp?detect=jre&try=1 сайт.



Цитата(1234ru @  28.10.2010,  16:31 Найти цитируемый пост)
Идея в том, чтобы всю визуальную нагрузку переложить на Javascript. На него же переложить слежение за действиями пользователя в браузере, чтобы он при надобности пинал Java-часть и передавал ей управление (но только для тех частей, которые он сам не может). Или так нельзя?

Можно, но в чем смысл минимизации Java-части на клиенте?



Цитата(1234ru @  28.10.2010,  16:31 Найти цитируемый пост)
3. Нужно ли для Java что-то дополнительное на сервере?

Нужно чтобы кто-то мог принять POST от Java апплета. Кто это будет, это не принципиально.


Если бы перед мной стояла задача:
Цитата(1234ru @  28.10.2010,  16:31 Найти цитируемый пост)
необходимость загрузки больших (до неск. Гб) файлов через веб-интерфейс (т.е. кнопка, по нажатию открывающая диалог выбора файла, полоса хода загрузки, ловля ошибок соединения и т.п.).

Я бы еще посмотрел в сторону Flash. Я вижу 2 преимущества Flash перед Java:
1. Flash более распространен, хотя нужна именно 10 версия плагина.
2. Flash не требует каких либо дополнительных телодвижений для реализации подобных вещей, Java апплет придется подписать для этого. Зато апплет сможет грузить не один файл, а директорию целиком или вообще может стать десктопным приложением, сворачиваться в трей, добавить свой значок в пуст и т.д.

Автор: 1234ru 29.10.2010, 11:58
За информацию по JRE - спасибо. Читаю...
Цитата
в чем смысл минимизации Java-части на клиенте?

В максимализации Javascript части smile
Мы Javascript знаем, а Java - нет, поэтому нам легче будет вносить изменения, если её будет поменьше.
Ну и плюс чтобы исполнителю снизить объем работы: он не возился бы самостоятельно с доводкой дизайна, нюансами логики интерфейса и т.п., в связи с чем он может попросить меньше денег ;)

С Java-части вообще хотелось бы снять всю визуальную нагрузку (т.е. всё на странице перерисовывается Javascript'ом).

Цитата
Я бы еще посмотрел в сторону Flash.

К Java пришли как раз от Flash-программистов, которые сказали, что по станадрту стабильная работа Flash возможна только с файлами менее 100 Мб (или 200, не суть), а всё, что свыше - недокументированные возможности (к тому же, Flash не умеет нормально отдавать файл с клиента по частям, а догрузка - важная вещь, когда дело идёт о больших файлах). 
Они сами признались, что для такой задачи Flash не подходит, и спасёт только Java smile

Автор: COVD 29.10.2010, 19:29
http://www.enterprisedt.com/products.html - From $299 

Возможно, это направление дешевле и надежнее, чем нанимать Java-программиста и смешивать коктейль из разных технологий.

Автор: 1234ru 1.11.2010, 11:16
Не, нам на принимающей стороне все равно нужно скрипт запускать.
Да и все же лучше иметь человека, который сам делал и своё добро может настроить/исправить.

Автор: LSD 1.11.2010, 14:43
Цитата(1234ru @  29.10.2010,  12:58 Найти цитируемый пост)
В максимализации Javascript части smile
Мы Javascript знаем, а Java - нет, поэтому нам легче будет вносить изменения, если её будет поменьше.
Ну и плюс чтобы исполнителю снизить объем работы: он не возился бы самостоятельно с доводкой дизайна, нюансами логики интерфейса и т.п., в связи с чем он может попросить меньше денег ;)

С Java-части вообще хотелось бы снять всю визуальную нагрузку (т.е. всё на странице перерисовывается Javascript'ом).

Только имейте в виду, что тут надо осторожней. Если Java метод вызывается из JavaScript, то будут проблемы с безопасностью. Он будет считаться как недоверенный, даже если апплет подписан, подробнее в http://forum.vingrad.ru/forum/topic-162940.html теме.

Автор: 1234ru 8.11.2010, 11:09
Спасибо, взял на заметку.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)