Обновления были протестированы на PHP 5.3.5, MySql 5.0.7, Apache 2.2.17

1. Выполнен первый этап оптимизации программы: повышена скорость обработки данных при работе с задачами. Часть логики по работе с задачами была перенесена на сторону клиента, а именно:
  • при добавлении задачи не будет происходить запрос на сервер для получения информации о правильности введенных данных;
  • матрица пользователя при добавлении и удалении задачи, изменении ее данных и работе с фактами будет обновляться не дожидаясь ответа от сервера и без дополнительного запроса.
В связи с выполненными изменениями теперь при работе с задачами фильтр матрицы будет автоматически переключаться на фильтр “Задачи” (если он не был установлен пользователем ранее) и текущая задача будет выбрана в матрице автоматически (Илл. 1). Если во время работы с матрицей под фильтром “Задачи” в задачи были внесены какие-либо изменения, то при переключении на другой фильтр будет происходить полное обновление матрицы.

Илл. 1. Автоматическое переключение между фильтрами матрицы после создания задачи

Проведенная оптимизация позволила добиться следующих результатов:

1. Практически не ощущается длительность таких операций над задачами как:
  • изменение названия;
  • изменение клиента;
  • выставление задачи на контроль;
  • внесение плана;
  • изменение приоритета;
  • установка периода повторения;
  • редактирование подробного описания и критерия оценки.

2. Данные оперативно обновляются и в матрице, и в окне с информацией о параметрах выбранной задачи.

3. Было уменьшено время выполнения операций добавления, изменения и удаления фактов. Однако при формировании списка фактов (блок “Факты”) еще выполняется загрузка данных с сервера, поэтому изменения не слишком заметны. На данный момент ведутся активные работы по оптимизации этого процесса.

2. Отключена опция “Результативность в списке ОУ” в системных и личных настройках программы для повышения скорости загрузки страницы. Такое решение было принято в связи с трудоемкостью операций получения текущего значения результативности по всем объектам управления (оно заново рассчитывается после любых изменений в матрицах) и перестройки списка ОУ после каждого расчета. Теперь опция “Результативность в списке ОУ” в Настройках системы и Личных настройках заблокирована для изменений и зафиксирована в положении “Скрывать” (Илл. 2).

Илл. 2. Текущий вид опции “Результативность в списке ОУ”

Таким образом столбец “R” теперь можно отобразить только поставив галочку напротив названия поля в контекстном (по нажатии на заголовок любого столбца правой кнопкой мышки) или выпадающем (по наведении мышки на треугольную кнопку в заголовке столбца “Сотрудник”) меню таблицы объектов управления. После обновления таблицы или страницы программы столбец с результативностью автоматически скроется.

3. Унифицировано оформление окон информационных сообщений в программе. Информационные окна предназначены для вывода на экран важной информации. В таком окне располагается текст сообщения, под которым находится кнопка ОК для подтверждения прочтения сообщения пользователем. Теперь все окна этого типа приведены к общему виду, соответствующему стилю оформления программы (Илл. 3). Некоторые информационные сообщения в программе выводятся не в отдельное окно, а непосредственно на страницу программы — в этом случае кнопка ОК отсутствует.

Илл. 3. Внешний вид информационного окна (1) и информационного сообщения (2) программы после унификации

Примечание: диалоговые окна, предназначенные для подтверждения или отмены выполнения какого-либо действия в программе, остались без изменений. В таком окне располагается описание будущего действия или его результатов, а также вопрос к пользователю, ответить на который он может при помощи кнопок ОК (Подтверждаю) или Отмена (Не подтверждаю) (Илл. 4). Эти окна являются стандартными, поэтому их внешний вид зависит от настроек оформления операционной системы пользователя.

Илл. 4. Внешний вид диалогового окна программы, оформление которого задано настройками операционной системы

4. Исправлена ошибка обновления программы в случае отсутствия отчетов (beta). Ранее, в случае полного отсутствия отчетов beta (Илл. 5) во время обновления программы до новой версии возникала ошибка обновления базы данных. В новой версии эта проблема была успешно устранена.

Илл. 5. Отчеты (beta)

Также во избежание возникновения новых ошибок стандартный отчет “SMART-карта” теперь будет восстанавливаться в программе по умолчанию после каждого нового обновления, если на момент выполнения обновления ни один отчет beta в ней не сохранен.

5. Уменьшено время обновления списка объектов управления. В предыдущих версиях загрузка списка ОУ, особенно при наличии в программе большого количества объектов управления, могла занимать длительное время. Благодаря оптимизации клиентской части теперь список объектов управления выводится на экран значительно быстрее. После внесения изменений были проведены экспериментальные замеры скорости обновления списка объектов управления после:

  • изменения периода;
  • отключения режима поиска ОУ;
  • нажатия кнопки очистки кеша в заголовке таблицы (кнопка “Обновить”).

Для программы, в которой зарегистрировано 500 активных объектов управления, были получены следующие результаты:

  • Время загрузки данных до оптимизации: 2 минуты 15 секунд;
  • Время загрузки данных после оптимизации: 12 секунд.