Comments 18
А зачем обязательно делать handler если можно сделать например sitemap.aspx и весь ваш код засунуть в Page_Load?
Можно и так сделать, но, на мой взгляд, использование IHttpHandler — наиболее простой и правильный способ.
затем, чтобы не обрабатывать полный жизненный цикл страницы (aspx).
я считаю, что для такой редко запрашиваемой страницы как sitemap это не очень-то важно…
Ведь если гнаться за наносекундами производительности, то давайте все страницы сайта тоже реализовывать хендлерами.
Ведь если гнаться за наносекундами производительности, то давайте все страницы сайта тоже реализовывать хендлерами.
Все страницы сайта — это неудобно.
В данном случае ни элементов управления, ни состояния страницы ни остальных наворотов не нужно, поэтому используется обработчик, что впринципе логично.
Более того, дискомфорта нет никакого, если использовать Http Handler в данном случае.
В данном случае ни элементов управления, ни состояния страницы ни остальных наворотов не нужно, поэтому используется обработчик, что впринципе логично.
Более того, дискомфорта нет никакого, если использовать Http Handler в данном случае.
эммм. на вкус и цвет все фломастеры разные. но мне было бы проще сосзадть пустую страницу с отключенным sessionstate (весь остальной хлам типа viewstate и validation я всегда отключаю на уровне всего сайта). На которой не будет никаких контролов, и написать туда этот код.
В этом случае оверхед на то, что это страница а не хендлер будет уже незаметен.
Зато нам не надо править вебконфиг (который будет выглядеть, кстати, по разному для IIS6/тестовый сервер студии и IIS7/7.5).
Опять же, напоминаю для тех кто забыл, сайтмап у нас запрашивается роботами и довольно редко. Если гонитесь за производительностью или запускаете с помощью asp.net шаттл, то настройте правильно кэширование.
В этом случае оверхед на то, что это страница а не хендлер будет уже незаметен.
Зато нам не надо править вебконфиг (который будет выглядеть, кстати, по разному для IIS6/тестовый сервер студии и IIS7/7.5).
Опять же, напоминаю для тех кто забыл, сайтмап у нас запрашивается роботами и довольно редко. Если гонитесь за производительностью или запускаете с помощью asp.net шаттл, то настройте правильно кэширование.
Зачем оставлять пустую страницу, можно xml генерировать так же как и html, разделяя код и разметку )
Кому как :)
Для меня лично в конкретно данном случае проще будет написать обработчик. Веб-конфиг, кстати, править совсем не обязательно раз уж на то пошло :)
Для меня лично в конкретно данном случае проще будет написать обработчик. Веб-конфиг, кстати, править совсем не обязательно раз уж на то пошло :)
за
1) страницу поддерживать проще
2) можно выставить правила кеширования
против
1) потеряно 2 наносекунды, турбо-гуру в трауре
п.с. можно использовать repeater для цикла, и отрубить половину жизненного цикла страницы
1) страницу поддерживать проще
2) можно выставить правила кеширования
против
1) потеряно 2 наносекунды, турбо-гуру в трауре
п.с. можно использовать repeater для цикла, и отрубить половину жизненного цикла страницы
Во-первых, если делаете HttpHandler, то ставьете ему IsReusable = true, тк в вашем случае один и тот же объект может обрабатывать разные запросы и его создание заново не требуется.
Во-вторых, мне кажется разумнее действительно использовать aspx-страничку, тк можно разметку вынести в aspx-файл и поместить в какой-нибудь ListView, а логика будет в кодовой части. (там есть специальный контрол asp:Xml для вывода xml)
Во-вторых, мне кажется разумнее действительно использовать aspx-страничку, тк можно разметку вынести в aspx-файл и поместить в какой-нибудь ListView, а логика будет в кодовой части. (там есть специальный контрол asp:Xml для вывода xml)
вообще вся страница может быть XML файлом, контролы типа Repeater работают с чем угодно, никто не заставляет выводить HTML, можете хоть Javascript генерить в aspx страницах.
хм, а я это делал через SiteMapProvider.
Написал на его основе свой SqlSiteMapProvider, примеров в интрнете предостаточно.
Написал на его основе свой SqlSiteMapProvider, примеров в интрнете предостаточно.
Sign up to leave a comment.
Генерация Sitemaps «на лету» с помощью ASP.NET HttpHandler