Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.01.2010, 22:14   #1
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,150
По умолчанию вывод большого дерева с чекбоксами

Собственно в рамках решаемой задачи, нужно вывести дерево каталога со всеми элементами и дать пользователю возможность проставить где нужно галочки. Все хорошо...но в дереве более 400 веток, более 5 тыс элементов...
Их построение и вывод - занимают значительное время... от 5 до 12 секунд... в течении которых страница недоступна пользователю....

Интересуют каки либо предложения по оптимизации данной процедуры... уменьшение времени построения, вывода или альтернативный способ отметить в предлагаемом дереве некоторые элементы
ADSoft вне форума Ответить с цитированием
Старый 26.01.2010, 22:37   #2
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Обычно используют Load-on-Demand (загрузка по требованию) для уменьшения времени загрузки. В сети продаются различные компоненты типа Webtreeview для ASP.Net.
motorway вне форума Ответить с цитированием
Старый 27.01.2010, 04:52   #3
LeoN
Форумчанин
 
Аватар для LeoN
 
Регистрация: 03.11.2006
Сообщений: 278
По умолчанию

Просто кешировать в отдельный файл и потом его подгружать.
Разработка сайтов -дело прикольное
LeoN вне форума Ответить с цитированием
Старый 27.01.2010, 07:32   #4
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,150
По умолчанию

Цитата:
Сообщение от LeoN Посмотреть сообщение
Просто кешировать в отдельный файл и потом его подгружать.
пробывал.... выигрыш небольшой - максимум 40% времени
ADSoft вне форума Ответить с цитированием
Старый 27.01.2010, 11:20   #5
mv28jam
Старожил
 
Аватар для mv28jam
 
Регистрация: 09.09.2008
Сообщений: 2,714
По умолчанию

1)Кешить каждую ветку отдельно и обновлять/обнулять кеш этой ветки только если с веткой произошли изменения.
2)В процессе кеширования в работе должна быть только одна ветка и связанные с ней переменные. Всё переменные, которые вы не обнулили -unset(), остаются в оперативке до конца работы скрипта.
3)Судя по по числу записей сама страница тяжёлая, поэтому есть смысл делать flush(), ob_flush().
Стрелок-охотник
mv28jam вне форума Ответить с цитированием
Старый 27.01.2010, 22:00   #6
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Наверно, нужно сначала загружать только верхние уровни дерева, а их элементы - только по запросу. Обычно человеку столько информации не нужно, а если нужно - то он может развернуть все ветки, которые будут загружаться только тогда
motorway вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод большого текста and_kow Общие вопросы Delphi 16 08.07.2009 16:00
древовидный список с чекбоксами linarka Общие вопросы Delphi 4 26.06.2007 10:04