Рендеринг Richface занимает больше времени

Привет, мы используем различную комбинацию таблицы данных, богатого списка и панели вкладок. рендеринг занимает слишком много времени. я сделал предложения по настройке производительности от stackoverflow и других веб-сайтов

<context-param>
    <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
    <param-value>server</param-value>
</context-param>

<context-param>
    <param-name>org.ajax4jsf.COMPRESS_SCRIPT</param-name>
    <param-value>false</param-value>
</context-param>

<context-param>
    <param-name>org.richfaces.LoadStyleStrategy</param-name>
    <param-value>ALL</param-value>
</context-param>
<context-param>
    <param-name>org.richfaces.LoadScriptStrategy</param-name>
    <param-value>ALL</param-value>
</context-param>

<context-param>
    <param-name>org.ajax4jsf.xmlparser.ORDER</param-name>
    <param-value>NEKO</param-value>
</context-param>

<context-param>
    <param-name>org.ajax4jsf.xmlparser.NEKO</param-name>
    <param-value>.*\..*</param-value>
</context-param>

<context-param>
    <param-name>com.sun.faces.responseBufferSize</param-name>
    <param-value>500000</param-value>
</context-param>
<context-param>
    <param-name>facelets.BUFFER_SIZE</param-name>
    <param-value>500000</param-value>
</context-param>

<filter>
    <display-name>RichFaces Filter</display-name>
    <filter-name>richfaces</filter-name>
    <filter-class>org.ajax4jsf.Filter</filter-class>
    <init-param>
        <param-name>forceparser</param-name>
        <param-value>false</param-value>
    </init-param>
    <init-param>
        <param-name>enable-cache</param-name>
        <param-value>true</param-value>
    </init-param>
</filter>

любая помощь будет оценена...


person SomaSekhar    schedule 12.10.2009    source источник


Ответы (2)


Есть ли у вас логика в ваших геттерах? Поскольку они будут вызываться несколько раз, переместите всю логику в методы, которые вызываются один раз.

Вставьте Phase Listener, как этот от Энди Гибсона

person Damo    schedule 12.10.2009
comment
не так много логики в getmethods(). в моей отладке я заметил, что мой метод получения будет вызываться только один раз. только фаза рендеринга занимает очень много времени. Спасибо за ваш комментарий - person SomaSekhar; 20.10.2009

Обратите внимание, что по умолчанию компоненты Richfaces используют разбиение по страницам на стороне клиента на основе JavaScript, поэтому при загрузке страницы считываются все данные. Может быть, изначально ваша страница показывает много данных (таблицы, комбинации, вкладки)?

Попробуйте повысить производительность, создав пейджинг на стороне сервера.

person cetnar    schedule 12.10.2009
comment
да, моя страница использует небольшой объем данных. мы не используем нумерацию страниц, мы должны отображать 100 строк за раз. общий объем отображаемых данных составляет менее 100 МБ. - person SomaSekhar; 20.10.2009