Кинотавр
Новичок
Проблема с таймаутом при обходе дерева страниц
Есть CMS. Структура страниц в ней древесная, у каждой страницы есть идентификатор родительской страницы. В админке выводится вся структура сайта, при помощи рекурсивной функции. Из базы данных страницы выдергиваются до обращения к рекурсивной функции, а в функции крутится только глобальный массив, содержащий некоторые нужные данные страниц (id, название и пр.). Массив крутится таким образом: каждое обращение к функции вызывает циклический перебор всех элементов массива (от 0 до max) с необходимыми проверками.
Все работало нормально, но один из сайтов разросся. Приблизительно при количестве страниц около 350 вышеописанная схема начинает валиться ошибкой maximum execition time 30 sec.
Прошу помочь разобрать ситуацию и дать идеи оптимизации алгоритма.
Спасибо.
Есть CMS. Структура страниц в ней древесная, у каждой страницы есть идентификатор родительской страницы. В админке выводится вся структура сайта, при помощи рекурсивной функции. Из базы данных страницы выдергиваются до обращения к рекурсивной функции, а в функции крутится только глобальный массив, содержащий некоторые нужные данные страниц (id, название и пр.). Массив крутится таким образом: каждое обращение к функции вызывает циклический перебор всех элементов массива (от 0 до max) с необходимыми проверками.
Все работало нормально, но один из сайтов разросся. Приблизительно при количестве страниц около 350 вышеописанная схема начинает валиться ошибкой maximum execition time 30 sec.
Прошу помочь разобрать ситуацию и дать идеи оптимизации алгоритма.
Спасибо.