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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ajax4jsf: проблема использования тега a4j:poll 
V
    Опции темы
powerOn
Дата 7.2.2007, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


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

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



Здравствуйте.

Я создал простую страничку с использованием библиотеки Ajax4jsf:

Код

<%@page pageEncoding="UTF-8"%>

<%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<%@taglib uri="https://ajax4jsf.dev.java.net/ajax" prefix="a4j"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <f:view>
            <h:form>

                <a4j:outputPanel id="interval_menu_panel">
                    <h:selectOneMenu id="somIntervalList" style="width: 100px" value="#{SimpleBean.intervalMenuValue}" >
                        <f:selectItem itemLabel="5s"  itemValue="5000"  />
                        <f:selectItem itemLabel="10s" itemValue="10000" />
                        <f:selectItem itemLabel="15s" itemValue="15000" />
                        <f:selectItem itemLabel="30s" itemValue="30000" />
                        <f:selectItem itemLabel="60s" itemValue="60000" />
                        <a4j:support event="onchange" reRender="interval_menu_panel, table_panel" />
                    </h:selectOneMenu>
                </a4j:outputPanel>
                
                <a4j:outputPanel id="table_panel">
                    <a4j:poll id="a4j_poll" interval="#{SimpleBean.updateInterval}" rendered="true" enabled="true" reRender="table_panel" />
                    <h:outputText value="#{SimpleBean.time}" />
                </a4j:outputPanel>

            </h:form>
        </f:view>
    </body>
</html>


код бина:
Код

public class SimpleBean
{
    private String updateInterval = "5000";
    
    public SimpleBean()
    {
    }
    
    //  Interval values
    public int getUpdateInterval()
    {
        return Integer.parseInt(updateInterval);
    }
    
    public String getIntervalMenuValue()
    {
        return updateInterval;
    }
    
    public void setIntervalMenuValue(String intervalMenuValue)
    {
        this.updateInterval = intervalMenuValue;
    }
   
    public String getTime()
    {
        return Calendar.getInstance().getTime().toString();
    }
}



На данной странице имеется комбобокс, который содержит интервалы обновления для a4j:poll: 5, 10, 15, 30 и 60 секунд. Сам же a4j:poll предназначен для периодического обновления <a4j:outputPanel id="table_panel">.
Я предполагал, что изменяя значение в комбобоксе смогу устанавливать новый интервал для обновления <a4j:outputPanel id="table_panel"> (и соответственно для обновления всех его вложенных компонентов), но, увы, получаю весьма странное поведение:
если не менять значение комбобокса (оставить его первоначальным - 5 сек), то все ок. Если же начать его изменять, то страница обновляется и с новым интервалом и со старым. Сколько раз поменяли значение в комбобоксе - столько получили интервалов обновления, при этом все работают. 

К примеру, изначально был интервал 5 сек. Благодаря этому страница обновилась в 10:00:05, 10:00:10, 10:00:15 и т.д. Если в 10:00:07 секунд поменять значение комбобокса на 10 сек, то обновление уже будет в 10:00:10, 10:00:15, 10:00:17, 10:00:20, 10:00:25, 10:00:27... (а должно быть: 10:00:17, 10:00:27, 10:00:37...)
Новый интервал был принят как нужно, но старый все равно остался и обновляет страницу! Что мне не очень нравится.  smile 
Да, если страницу полностью обновить, то интервал приходит в норму: остается только последний из выбранных.

Может есть какой атрибут специальный существует для a4j:poll, позволяющий избежать подобного поведения? Может я еще что забыл?

Спасибо.

 


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

PM MAIL   Вверх
Zamuta
Дата 7.2.2007, 18:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



powerOn, я не уверен, но может дело в кэшировании, мне это напоминает вот эту историю http://forum.vingrad.ru/topic-104332.html


--------------------
Thank you opensource.
PM MAIL ICQ   Вверх
powerOn
Дата 7.2.2007, 18:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


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

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



Цитата(Zamuta @  7.2.2007,  18:38 Найти цитируемый пост)
powerOn, я не уверен, но может дело в кэшировании, мне это напоминает вот эту историю http://forum.vingrad.ru/topic-104332.html 


попробовал, увы, не помогло.  smile 


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

PM MAIL   Вверх
alexsmirnov
Дата 8.2.2007, 01:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Обнови версию до 1.0.6 - там была одна ошибка, при выводе нового компонента на убивались предыдущие запросы - соответственно после обновления начинает работать новая цепочка запросов, и старая продолжает слать.
PM MAIL   Вверх
powerOn
Дата 8.2.2007, 09:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


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

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



Цитата(alexsmirnov @  8.2.2007,  01:47 Найти цитируемый пост)
Обнови версию до 1.0.6

Это и есть версия 1.0.6. (ajax4jsf-1.0.6-binary.zip)  smile 

Да, такое поведение было  замечено под ОС Windows XP prof sp2. (Использовал Tomcat 5.5, JBoss 4.0.5, SJSAS 9.0. Браузеры: FF 2.0 и IE 6) JDK 1.5.0_10. Но под Linux (Suse 10.2) на тех же серверах все работает как нужно...  smile 


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

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


software saboteur
****


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

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



Проблема разрешилась переустановкой JDK в системе. Ума не приложу на что это могло повлиять, но сейчас (тьфу тьфу тьфу) все работает....  smile Возможно я раньше действительно использовал старую версию библиотеки ajax4jsf, и jdk как-либо закэшировала её. что даже при подключении новой версии библиотеки (1.0.6) эффект в приложении оставался таким же...  smile  


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

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


Шустрый
*


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

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



Исправления были в клиентском скрипте - а для повышения производительности ajax4jsf использует OSCache, который хранит все в атрибытах контекста - который, в свою очередь , некоторые сервера приложений сохраняют даже при перезапуске приложений. Возможно, дело в этом.
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.0469 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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