Поиск по сайту:
taxor.ruБлог — Загрузка изображений «на лету»: Ajax или не Ajax?

Загрузка изображений «на лету»: Ajax или не Ajax?

Секция: Сайтостроение и WEB-разработка

Просмотров: 133

Комментариев нет — ваш комментарий может стать первым

В последнее время AJAX-загрузкой изображений на сайтах (это такая, которая происходит без перезагрузки самой страницы с сервера) уже мало кого удивишь. На днях требование организовать для сайта именно такой тип загрузки изображений — в противовес чисто серверному решению — было предъявлено и мне, со словами, что загрузка с обновлением страницы — это прошлый век и что сейчас никто так не делает. В связи с чем мне хотелось бы сделать маленькую паузу, остановиться и оглянуться назад в поисках ответа на вопрос, почему никто так не делает и почему просто и логичное, казалось бы, решение — вдруг ни с того ни с сего без видимых причин стало атрибутом прошлого века.

Впрочем, без видимых ли? Присмотримся повнимательнее.

Напомню: когда-то сайты создавались веб-мастерами вручную и индивидуально, и создание сайтов было долгой, кропотливой работой. Потом на смену «самопискам» пришли стандартные движки типа Битрикса, Джумлы и Вордпресса, и под зубовный скрежет программистов клепать сайты начали все кому не лень поточным методом за два-три дня и при этом за совершенно фантастические гонорары (на днях мне рассказали о созданном на основе движка Bitrix от сайте аж за полтора десятка миллионов рублей — и это ещё не предел!).

Однако у стандартных движков, в отличие от «самописок», есть одна небольшая проблемка: чаще всего большинство из них созданы «на отвали» и «через жопу» — по принципу «главное, чтобы работало». В стандартных движках вполне себе в порядке вещей такие явления, как загрузка страниц в течение нескольких минут даже при мощных интернет-каналах, состав страницы из полутора сотен различных компонентов общим весом в несколько мегабайт. В них вполне себе в порядке вещей, если на странице контактов компании подключены скрипты полного расчёта прайс-листа или отображения фотогалереи товаров.

Другими словами, неотъемлемый атрибут стандартных движков — это непомерно «тяжёлые» и неповоротливые страницы, загрузка каждой из которых — целая эпопея не то что для мобильных устройств, но даже для стационарных ПК со скоростным интернет-подключением.

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

Вот тут-то и помог веб-мастерам Ajax: он позволил реализовать загрузку медиаконтента «на лету», без перезагрузки страниц. Разумеется, без участия сервера такая загрузка всё равно обойтись не могла бы, единственная разница — при использовании нового решения пользователь продолжал видеть всё ту же страницу, с которой начал загрузку, и какой-нибудь анимированный значок, означающий, что в данный момент происходит загрузка.

Пользователям стало чуть-чуть удобнее. А программистам стало в разы сложнее.

Какова логика серверного решения? Она сравнительно простая: пользователь указывает на свойм компьютере медиа-файл, который необходимо загрузить на сервер, нажимает кнопку «Загрузить», файл отправляется на сервер, где проверяется программой, и затем сервер возвращает пользователю новую страницу с сообщением либо об успешной загрузке медиа-файла, либо о причинах отказа. Всё.

При использовании AJAX к этой логике добавляется необходимость загрузить при помощи кода страницы на компьютер пользователя резидентный код JavaScript, который после выбора пользователем медиа-файла побежит опять-таки к серверу, дождётся его ответа, и затем подгрузит ответ сервера непосредственно в ту страницу, с которой производилась загрузка файла. Для работы такого резидентного кода потребуется ещё и подгрузить — опять-таки на компьютер пользователя! — библиотеку JQuery, без которой код категорически откажется работать, а также кучу дополнительных стилей и HTML-элементов. Для работы этого кода придётся то и дело гонять туда-сюда между серверным скриптом и JavaScript всевозможные параметры. И это не говоря уже о том, что любые JavaScript-решения могут вообще не заработать в браузере или на компьютере пользователя: ведь серверные скрипты работают по определению на сервере, и им глубоко наплевать, какой у пользователя браузер и компьютер — простой HTML-код, возвращаемый ими, выведется в любом случае в более-менее корректном виде, тогда как JavaScript работает на стороне пользователя.

Проще говоря, AJAX — это не что иное, как элементарный «костыль» для обхода перезагрузки тяжёлых страниц, генерируемых современными стандартными движками, сконструированными на 95% «через жопу». На лёгких же «самописках» вполне успешно продолжают работать чисто серверные решения, про которые — при быстрой загрузке страниц — никому из пользователей не придёт в голову сказать «прошлый век». В самом деле, если твоя картинка или фотография загружается на сайт (пусть и с перезагрузкой страницы) в три-четыре раза быстрее, чем на сотне других сайтов — то тут ещё не помешает разобраться, какие из сайтов к какому веку можно отнести, не так ли?

Напоследок — мой совет: прежде чем у вас с языка сорвётся фраза «прошлый» век — вспомните, что карандаш, топор, молоток, отвёртка, плоскогубцы, стакан, ножницы, стулья и ещё многое-многое другое — это, вы не поверите, тоже-таки всё тот же самый прошлый (а то и позапрошлый) век. Что не мешает вам всем этим успешно пользоваться.

Комментарии

добавить комментарий

комментариев не найдено — ваш может стать первым!


© «Таксор». Интернет-мастерская М. Ю. Уткина.