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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Обновление картинки, jsf 
:(
    Опции темы
iLoveJava
Дата 19.3.2008, 19:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



У меня в приложениии есть поток который переодически генерить картинку а на странице надо ее
переодически обновлять собственно вопрос как на странице ее переодически обновлять?

щас я делаю так

Код

    <a4j:region>
        <center>
            <h:form id="imageForm"> 
                   <t:graphicImage id="mapImage" url="#{myBean.imgPath}"
                                usemap="#myMap"/>
                   <map name="myMap">
                           <h:outputText escape="false" value="#{myBean.myMap}"/>
                   </map>
            </h:form>    
        </center>
    </a4j:region>

    ...

    <a4j:region>
        <h:form>
            <a4j:poll id="poll" rendered="true" interval="2500"
                enabled="true" reRender="imageForm"/>
        </h:form>
    </a4j:region>



и это не работает  smile 
помогите плиз  smile 
PM MAIL   Вверх
v2v
Дата 19.3.2008, 19:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



тоесть  тебе надо по истечении некоторого времени обращаться к серверу и качать оттуда новую картинку и это без перезагрузки всей страницы?


--------------------
PM   Вверх
powerOn
Дата 19.3.2008, 23:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


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

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



Что конкретно не работает? Какие ошибки выдаёт? Исключения кидает?


--------------------
user posted image нет времени думать - нужно писать КОД!

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


Опытный
**


Профиль
Группа: Участник
Сообщений: 317
Регистрация: 26.7.2006
Где: Москва

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



хммм может быть дело в этом?
reRender="imageForm"
может нада так?
reRender="imageForm:mapImage"
+ если включено кеширование то картинка могла закешится браузером.


--------------------
С уважением, 
                 Виталий Смык
----------------------------------------------------------------------------------------------
SCJP, SCWCD, OCA
http://dev.maryno.net/video/
PM MAIL WWW ICQ Skype   Вверх
iLoveJava
Дата 21.3.2008, 17:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



2 powerOn 
никаких ошибок нет просто не обновляет и все, а myMap обновляет
наверное вся проблема в кешировании а как сказать браузеру что бы не кешировал картинку?
PM MAIL   Вверх
iLoveJava
Дата 23.3.2008, 22:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



пробывал делать так

Код

...
    <a4j:region>
        <center>
            <h:form id="imageForm"> 
                <a4j:mediaOutput element="img" cacheable="false" session="true"
                        createContent="#{myBean.paintPic}"
                        mimeType="image/jpeg" usemap="#myMap"/>
                <map name="myMap">
                         <h:outputText escape="false" value="#{myBean.myMap}"/>
                </map>
            </h:form>    
        </center>
    </a4j:region>
    ...

    <a4j:region>
        <h:form>
            <a4j:poll id="poll" rendered="true" interval="2500"
                enabled="true" reRender="imageForm"/>
        </h:form>
    </a4j:region>
...


Код

public class MyBean {
...
    public void paintPic(OutputStream out, Object data) throws IOException {
        try {
            BufferedImage bi = null;
            bi = ImageIO.read(new File("myFile.jpg"));
            ImageIO.write(bi, "jpeg", out);
            out.flush();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
...
}


не помогло хотя картинка не должна в теории кешироваться  cacheable="false"

но мап обновляется...
PM MAIL   Вверх
necromancer
Дата 25.3.2008, 17:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 317
Регистрация: 26.7.2006
Где: Москва

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



у тебя картинка лежит на форме, форма это namingContainer т.е. к айдишнику твоей картинки прибавляется id формы


--------------------
С уважением, 
                 Виталий Смык
----------------------------------------------------------------------------------------------
SCJP, SCWCD, OCA
http://dev.maryno.net/video/
PM MAIL WWW ICQ Skype   Вверх
iLoveJava
Дата 26.3.2008, 21:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



2 necromancer попробывал так как ты сказал вот что вышло
Код

...
    <a4j:region>
        <center>
            <h:form id="imageForm"> 
                <a4j:mediaOutput id="myImage" element="img" cacheable="false" session="true"
                        createContent="#{myBean.paintPic}"
                        mimeType="image/jpeg" usemap="#myMap"/>
                <map id="myMap" name="myMap">
                         <h:outputText escape="false" value="#{myBean.myMap}"/>
                </map>
            </h:form>    
        </center>
    </a4j:region>
    ...

    <a4j:region>
        <h:form>
            <a4j:poll id="poll" rendered="true" interval="2500"
                enabled="true" reRender="imageForm,imageForm:myImage,imageForm:myMap"/>
        </h:form>
    </a4j:region>
...


но оно не работает!!!!  smile 

Как и в предыдущих случаях обновляется токо мап

2 necromancer
А как в 1 и 2 варианте мог обновляться мап?

А нельзя картинку в какойнить компонент поместить?
PM MAIL   Вверх
necromancer
Дата 26.3.2008, 22:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 317
Регистрация: 26.7.2006
Где: Москва

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



на самом деле из за таких вот проблем я сам и не использую a4j:mediaOutput 
а написал сервлет, который собственно рендерит изображение, обновляется все без проблем

PS session="true" попробуй session="false"


--------------------
С уважением, 
                 Виталий Смык
----------------------------------------------------------------------------------------------
SCJP, SCWCD, OCA
http://dev.maryno.net/video/
PM MAIL WWW ICQ Skype   Вверх
alexsmirnov
Дата 27.3.2008, 07:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Браузеры сильно консервативны. При динамической замене картинки, на сервер за ней не лезут, даже если все заголовки кеширование запрещают.
Надо чтобы URL хоть чуть-чуть поменялась. Например, в value/data вставлять время последней генерации картинки. Оно сериализуется в URL, и все будет в порядке.
Более того, при этом картинку можно сделать кешируемой - запрос пойдет только если она реально поменялась.

Это сообщение отредактировал(а) alexsmirnov - 27.3.2008, 07:26
PM MAIL   Вверх
iLoveJava
Дата 27.3.2008, 19:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



alexsmirnov ты оказался прав спс ктонить добавте человеку +1
а то я не могу :(
2 necromancer тебе тоже спс за участие я на всякий случал сделал session="false"
а так как все теперь работает так даже не хочу проверять зависит от этого что-нибудь или нет smile
Код

...
    <a4j:region>
        <center>
            <h:form id="imageForm"> 
                <a4j:mediaOutput id="myImage" element="img" cacheable="false" session="false"
                        createContent="#{myBean.paintPic}"
                        mimeType="image/jpeg" usemap="#myMap" value="#{myBean.date}"/>
                <map id="myMap" name="myMap">
                         <h:outputText escape="false" value="#{myBean.myMap}"/>
                </map>
            </h:form>    
        </center>
    </a4j:region>
    ...

    <a4j:region>
        <h:form>
            <a4j:poll id="poll" rendered="true" interval="2500"
                enabled="true" reRender="imageForm,imageForm:myImage,imageForm:myMap"/>
        </h:form>
    </a4j:region>
...


и

Код

public class MyBean {
...
    public long getDate() {
        return (new Date()).getTime();
    }
...

}


Обновляет...  smile  smile 

Токо вот тут проблема: оно обновляет, но при этом сначала "убивает" картинку, потом посылает запрос на сервер, получает ответ и токо потом рисует картинку. Получается, что страничка ка бы постоянно скачет. Нельзя ли сделать, чтобы картинка убивалась токо после того, как получен ответ от сервера? и нельзя ли поместить картинку в какой-нибуть контейнер так, чтобы он оставался постоянного размера и позволял бы делать прокрутки, если его размер к примеру 100х100, а картинка 1000х1000.  smile 

Это сообщение отредактировал(а) iLoveJava - 27.3.2008, 19:48
PM MAIL   Вверх
alexsmirnov
Дата 28.3.2008, 02:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Надо ставить размеры для тега img ( width/height , или в стиле ). Если картинка генерируется, то ее размер должен быть известен. Если это файл, то можно считывать его свойства. Грузить в background можно, но для этого довольно много javascript написать потребуется - вначале вывести скрытый элемент img, прикрутить к нему listener, по окончании загрузки скопировать элемент по назначению.
PM MAIL   Вверх
iLoveJava
Дата 28.3.2008, 15:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



чуствую с бекграундом для меня проще будет такой аплет сделать...  smile 

а на счет контейнера ничего посоветовать не можете?

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

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

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


 




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


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

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