
Если вы слушали доклады или читали статьи о новинках IE 8, то должны помнить, что добвить web slices (веб-фрагменты)
к своему сайту проще простого. Легкий взмах руки (добавление 2-3 аттрибутов в html) - и вы смело можете утверждать,
что ваш сайт по полной использует возможности новой версии браузера!
Но так ли все просто на самом деле? Конечно, в наше время верить в чудеса стало легче. Кто-то еще помнит, сколько
усилий и времени нужно было потратить, чтобы заставить общаться клиентскую и серверную части кода по DCOM? Чувствуете
разницу, реализуя все то же сейчас на WPF? (кстати, намного больше усилий приходилось тратить не на реализацию, а на
поддержку этого рершения в локальных сетях заказчиков; в десяти случаях все нормально, в одиннадцатом - нет; и сеть
такая же, и руки админ мыл - а не работает. Ладно, это так, лирика :)
Знаете, в программировании, да и в любой другой высокотехнологичной среде, вместо ответов "да" и "нет" практически всегда
звучит "да, но ..." и "нет, хотя ...". И это правильно, ведь для того, чтобы правильно задать вопрос, нужно знать большую
часть ответа. Вот и сейчас, можно смело сказать, "да, легко, но ...".
Ну что, посмотрим, что скрывается за этим многоточием?
Для наглядности возьмем пример, на котором я разбирался с web slices сам: модуль, выводящий
последние результаты футбольных матчей. Для web slices это практически идеальный кандидат -
часть страницы с постоянно обновляющейся информацией, которая интересна многим пользователям.
В лучших традициях инкапсуляции сам модуль выглядит у нас так:
<common:LiveResults ID="lr" runat="server"/>
Итак ...
Web slices - взгляд первый

Легкий взмах руки:
-
Выделяем нужную нам область тегом div, отмечаем его классом "hslice" и придумываем какой-нибудь id
(это обязательное условие для web slices, не важно какой, но id нужен)
-
Внутрь div-а добавляем тег, помеченный классом "entry-title". Он нужен для того, чтобы IE мог определить название
нашего веб-фрагмента. Устанавливаем ему стиль "display:none", чтобы сделать невидимым для пользователя.
Кончно, можно прекрасно использовать и тег с заголовком внутри нашего модуля. Я вынес заголовок,
чтобы полностью изолировать логику web slice от user control и оставить ему только отрисовку результатов.
А будут они отображаться на странице или как web slices - не user control-ного ума дело.
Получаем вот что:
<div id="liveRes" class="hslice">
<span class="entry-title" style="display:none">Online-результаты</span>
<common:LiveResults ID="lr" runat="server"/>
</div>
И все действительно работает. Наводим на модуль мышкой, выбираем "Добавить на панель избранного" и получаем симпатичную
кнопку с последними матчами.
Часть ответа со словом "да" мы честно отработали. Теперь посмотрим, что у нас означает "но".
[читать дальше]