Добавление Ajax на сайт – это хороший повод почистить страницы, что, возможно, вы хотели сделать уже очень давно, но никак не могли найти для этого времени. Динамические эффекты и устаревшие HTML-теги плохо сочетаются друг с другом, особенно если вы передвигаете объекты, сворачиваете и разворачиваете столбцы, делаете правку “по месту” (in-place).

На форуме O’Reilly Radar Нэт Торкингтон написал следующее о попытке Марка Луковски внедрить один и тот же Ajax-фрэгмент на два разных сайта- на “чистый” сайт и на сайт со значительным “багажом”:

Находясь на OSCON, Марк Луковски (Google) послал нам HTML-код, который внедряет небольшой виджет для поиска по картам на наш веб-сайт, посвященный конференциям. С помощью этого виджета участники могут легко найти около места проведения конференции рестораны, гостиницы, парковки, бары и т. д. Прекрасная идея и изящная демонстрация интерфейса Ajax Search API, над которым работает Марк.

Следующее выступление Марка должно было состояться на конференции SES (Search Engine Strategies, “Стратегии механизмов поиска”), поэтому он, естественно, обратился к примеру “найди-мне-что-нибудь-рядом-с-местом-проведе- ния-конференции”. Однако он быстро столкнулся с беспорядочным HTML, на котором написан веб-сайт SES. Добавить JavaScript-код в веб-страницу O’Reilly было секундным делом, тогда как добавление того же фрагмента к странице SES оказалось настоящим испытанием.

Это подтверждение огромной работы по преобразованию страниц сайта в форматы XHTML и CSS, проделанной командой дизайнеров O’Reilly. Это также и подтверждение необходимости стандартов. Смысл стандартов не в том, чтобы гарантировать всего лишь отображение браузерами страниц. Стандарты гарантируют также, что страницы образуют надежный фундамент; слепленный кое- как фундамент приводит к неустойчивым недолговечным постройкам.

Ajax сильно зависит от CSS и еще больше зависит от DOM. В Ajax-приложениях мы можем получить доступ к отдельным элементам и передвигать их, создавать их или удалять их “на лету”. Вследствие зависимости от DOM мы не можем просто внедрить сценарий на страницу, присвоить элементам пару ID-атрибутов и ждать, что от этого наши эффекты заработают. Ajax действительно нуждается в том, чтобы страница до начала работ была очищена.