![]() |
Одной из ключевых проблем при создании интерактивного сайта является скорость взаимодействия с пользователем. Каждое действие, каждое нажатие кнопки требует перезагрузки всей страницы, что пагубно сказывается на трафике, а следовательно — на скорости работы. Одной из ключевых проблем при создании интерактивного сайта является скорость взаимодействия с пользователем. Каждое действие, каждое нажатие кнопки требует перезагрузки всей страницы, что пагубно сказывается на трафике, а следовательно — на скорости работы. Существуют различные техники для снижения объема пересылаемых данных, и некоторые из них будут здесь описаны (с разной степенью подробности). Эти приемы не представляют большого секрета, но могут быть полезны. Используются они, к сожалению, нечасто. SSI на стороне клиентаОдин из несложных приемов, довольно широко известный, но неудобный в реализации.Суть его в том, чтобы позволить клиенту хранить неизменяющиеся блоки страницы (шапку, навигацию, footer) у себя в кэше, а не выкачивать их заново с каждым запросом. Идеологически этот прием напоминает фреймы, но без недостатков, им присущих. Как это делается? Разумеется, современные принципы работы браузеров не позволяют написать в странице инструкции типа Часто, конечно, хочется сделать шапку и прочие модули зависимыми от текущей страницы, но в простейших случаях эта проблема разрешима. Можно написать скрипт, который будет разбирать строку запроса, и в соответствии с полученной информацией вносить коррективы. SRC и его примененияОписанный выше «client-SSI» — по сути, один из случаев использования возможностей атрибута Первое и самое простое — это rollover. Возможность изменения картинки при наведении на нее курсора поражает каждого начинающего дизайнера, и уже никогда он не сможет от нее отказаться. Представить сайт без rolloverов практически невозможно. Дальше — больше. Появляются фреймы, inline-фреймы, всякие такие удовольствия. Но это не так интересно само по себе, куда интереснее, что это дает возможности выполнения серверных скриптов без перезагрузки страницы. Обмен информацией без перезагрузки страницыЭтот параграф основан на статье Exchanging information with a server without reloading your HTML page (автор — Tong Li) с сайта IBM DeveloperWorks. Разумеется, с некоторыми дополнениями и изменениями. Часто возникает желание передать какую-то информацию на сервер, минимизируя объем возвращаемой информации. Существуют два случая: когда нам вообще не надо ничего получать с сервера, и когда какой-то отклик все же нужен. В первом случае прекрасно подходит картинка нулевого размера, Во втором случае тоже применяется изменение Методы, описанные в этом параграфе, любопытны и действенны. Но есть в них один недостаток: для простой вроде бы задачи (отослать информацию на сервер, не перезагружая страницу) применяются сложные методы, пишутся замысловатые скрипты, изменяются атрибуты элементов… такое впечатление, что мы пытаемся сделать что-то противозаконное. Между тем, есть очень простой, но малоизвестный метод, позволяющий сделать то же самое куда меньшими усилиями. Малоизвестный, несмотря на то, что вся информация лежит под носом, надо только протянуть руку. Подходит он, правда, исключительно для случая, когда содержательного ответа не требуется, только «да» или «нет». Сокровищница HTTPКак общается браузер с сервером? Говоря попросту, клиент шлет запрос, сервер возвращает ответ. Что нам сейчас интересно, так это статус возврата в HTTP-заголовке. Такие статусы, как 404 и 403 знакомы, думаю, всем. А вот код 204 не так широко известен. Он имеет описание Рассмотрим более детально, как следует использовать этот прием, и что можно с него получить. Представим себе, что у нас есть некоторая форма, которую нужно обработать скриптом. Исполняющий скрипт должен возвращать в случае успешной обработки код 204, и страница с формой не будет перезагружаться. Поскольку пользователю все же необходимо какое-то подтверждение успеха, на кнопку Если обработка данных прошла неудачно, пользователя надо вернуть к заполнению формы — например, с помощью указания заголовка Некоторое недоумение посетителя (в случае неудачной обработки данных) может вызвать то, что сначала появится При желании можно придумать еще много различных применений этому методу. А можно почитать документацию и найти еще что-нибудь интересное. ЭпилогСуществует множество различных способов сэкономить пару килобайт, но самый простой — писать чистый, компактный код, не злоупотреблять графикой и сценариями. Никакие технические приемы не помогут топорно сверстанной странице, загроможденной ненужными элементами и неграмотной разметкой. Самое простое решение — всегда самое лучшее. Примечание. В этой статье нет никаких соображений о межбраузерной совместимости, отчасти из-за лени, отчасти в силу уважения к стандартам и надежды, что рано или поздно все браузеры будут совместимы. При непосредственных реализациях той или иной техники настоятельно рекомендуется ее хорошенько потестировать. Желаю успеха! Хитовые статьи про разработку сайтов
Рассылка новостей и новых статей
Сообщения будут приходить пару раз в неделю, не чаще
Объявления |
Об авторе заметок
Примите участие
Некоторые мои проектыОбъявления |
© Александр Шуркаев, 2001–2025. Условия копирования и как стать автором. Если что, пишите на alshur@ya.ru. Осторожно, теги закрываются! ![]() |
![]() |