2012-03-12 2 views

ответ

3
  1. Не уверен, если это Типп для начинающих, но и использовать любой из LifeCyclePhaseListeners из OpenNTF Snippets, чтобы увидеть, что происходит в ваших источников данных в течение полного или частичное обновление (http://openntf.org/XSnippets.nsf/snippet.xsp?id=a-simple-lifecyclelistener-)

  2. Используйте библиотеку расширений. Сообщить об ошибках (или о том, что вы считаете ошибкой) в OpenNTF.

  3. Используйте SampleDb из extLib. ou может легко модифицировать образцы в соответствии с вашими потребностями. Даже хорошо для тестирования, если проблема, с которой вы сталкиваетесь, воспроизводится в этой БД.
  4. Используйте Firebug (или аналогичный инструмент, который поставляется с выбранным вами браузером). Если вы видите ошибку на вкладке с ошибкой, перейдите и исправьте ее.
1

Основы как

  1. Используйте непосредственные флаги (или один из других флагов) на ServerSide событий, если возможно
  2. Проверьте флаг, который (забыл его имя ..) генерирует CSS и JS, как один большой файл во время выполнения, поэтому сведение к минимуму количества запросов.
  3. Выбирайте область с умом. Не помещайте все в свой сеанс, но определяйте, где, где и как вы используете данные и на основе которых используется правильная область. Это может привести к лучшему использованию памяти.

И, конечно же, самый важный из них - прочитанная книга мастеринга xpages.


Другие советы Я хотел бы добавить:

  1. При получении данных об использовании viewentrycollections или viewnavigstor
  2. Обновление до 8.5.3
  3. Использовать HTML по умолчанию теги, если это возможно. Если вам не нужны функциональные возможности панели xp: div или xp: используйте вместо этого <div>, чтобы вы не генерировали дополнительный компонент на дереве.
  4. Определить, какой режим страницы настойчивость вам нужно
+2

С риском расщепления волос простые разделители по-прежнему являются экземплярами UIComponent, поскольку они являются экземплярами UIPassthroughTag, которые расширяют UIComponent. Это правда, что у них меньше накладных расходов, чем экземпляры XspDiv, у которых меньше накладных расходов, чем у UIPanel, поэтому ваше предложение вполне справедливо. Тем не менее, повышение производительности достигается за счет использования этих средств, когда это возможно, не потому, что они не являются компонентами. Также стоит отметить, что атрибуты тегов пересылки не могут быть указаны через темы, что является еще одним способом повышения производительности. –

+1

Привет, Тим, я прочитал, что использование простого html, если возможно, будет улучшением производительности. Спасибо, что объяснили, как простой html переводится на узлы дерева. – jjtbsomhorst

2
1. Use the Script Library instead writing a bulk of code into the Xpage. 
2. Use the Theme or separate CSS class for each elements [Relational] 
3. Moreover try to control your SSJS code. Because server side request only reduce our system performance. 
4. Final point consider this as sub point of 3, Try to get the direct functions from our SSJS, Don't use the while llop and for loop for like document collection, count and other things. 
+0

Действительно ли это хорошая идея поместить как можно больше кода в JSlib и добавить его в качестве ресурса? По моему мнению, все библиотеки загружаются (и анализируются). BEFORe выводит любой вывод в браузере. Поэтому я ожидаю большую задержку с помощью этого метода. Не уверен, что это действительно так. Кто-нибудь, чтобы доказать, что я неправ? –

3

Поскольку вы просите только 3, вот советы я чувствую самую большую разницу:

  1. Определить, что пользователи/клиенты имели в виду под «производительность», и соответственно установите параметр сохранения страницы. Если они подразумевают масштабируемость (максимальные одновременные пользователи), сохраняйте страницы на диске. Если они означают скорость, держите страницы в памяти. Если они хотят идеальную смесь скорости и масштабируемости, сохраните текущую страницу в памяти.Этот последний вариант действительно должен быть сервером по умолчанию (установленным в файле xsp.properties сервера), который переопределяется только по мере необходимости для каждого приложения.
  2. Установить привязки значений для вычисления на загрузке страницы (обозначается символом $ в исходном XML), где это возможно, вместо динамического вычисления (обозначается символом #). $ привязки оцениваются только один раз, # привязки пересчитываются снова и снова, поэтому изменение вычислений, которые нужно загружать только один раз на страницу до $ привязок, ускоряет как загрузку начальной страницы, так и любые события, запускаемые на странице после загрузки.
  3. Минимизировать использование SSJS. По возможности используйте вместо этого стандартный EL (например, $ {database.title} вместо $ {javascript: return database.getTitle();}). Каждое выражение SSJS должно анализироваться в абстрактное синтаксическое дерево, которое должно быть оценено, что постепенно медленнее, чем стандартный EL-резольвер.

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

+0

Спасибо за ваш вход Тим. Отличная информация. –

1

Зависит от того, что вы подразумеваете под действием производительности. Для обеспечения работы приложения:

  1. Используйте вычисления при загрузке страницы, где это возможно. Это значительно улучшает производительность.
  2. В больших XPages, в частности, комбинируйте код в отдельные элементы управления, где это возможно. Например. Используйте единую команду Computed Field, объединяющую литеральные строки, EL и SSJS, а не один элемент управления для каждого языка. В этот момент EL работает лучше SSJS, а SSJS на XPage работает лучше, чем SSJS в библиотеке скриптов.
  3. Используйте dataContexts для свойств, которые вычисляются более одного раза на XPage.

Режим частичного исполнения - очень сильная рекомендация, но, возможно, за пределами новых разработчиков XPages. Java также будет работать лучше, чем SSJS в библиотеке скриптов, но снова за пределами новых разработчиков. Элементы XPages, которые вы создали с помощью Extensibility Framework, должны работать лучше, потому что они должны запускать меньше строк Java, чем несколько элементов управления, но я не тестировал это.

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

  1. Получить библиотеку расширений.
  2. Используйте темы для установки свойств по умолчанию, например. Стандартный стиль для всех ваших пейджеров.
  3. Использование Firebug. Если вы разрабатываете для Notes Client или IE, по-прежнему используйте Firebug. Вы будете тратить более длительные страдания через Client/IE, благодаря чему вы будете исправлять несколько причуд, которые останутся.
+0

Спасибо, Пол! Это хороший вклад, который я буду включать в предстоящую слайд-колоду. –

Смежные вопросы