Как я могу использовать SiteMap более эффективно? - PullRequest
2 голосов
/ 15 мая 2010

Итак, на нашем сайте мы используем SiteMap. Для каждого запроса мы отображаем какое-то меню и для этого делаем SiteMap.RootNode в вспомогательной функции.

Теперь, когда я выполнил профилирование моего сайта с помощью dotTrace , я увидел, что get_RootNode() занимает много времени (около 70-75 миллисекунд). Но мы знаем, что SiteMap является статическим. Итак, я думаю, что каким-то образом я получу SiteMap.RootNode только один раз в Application_Start и получу доступ к нему через каждый запрос.

Итак, мои вопросы,

Мой подход правильный? Как мне это сделать? Или есть какой-нибудь эффективный способ, которым я могу использовать SiteMap.RootNode

Спасибо.

1 Ответ

0 голосов
/ 17 мая 2010

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

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

Я написал свои собственные cms и теоретически, если вы используете аналогичное cms / приложение, которое структурирует данные таким же образом, вы сможете получить списки меню из БД за меньшее время, получив всех потомков текущего идентификатор страницы / некоторая форма аналогичного контекстного запроса.

Вы можете (как мне сказали), однако, разбить свои карты сайта на меньшие частичные карты, а затем вытянуть списки меню из них, чтобы увеличить производительность.

Если, однако, ваш сайт содержит менее 500 страниц, я бы поставил под сомнение кодировку ... это карта сайта? Поставщик ожидает блокировки ресурсов или что-то в этом роде?

Рассматривали ли вы получение данных с помощью класса xmldocument? (просто мысль)

...