Хотим - Создаем!

От PHP к node.js. Технология реального времени.

С течением времени меняются порядки, взгляды, правила и требования. Так с каждым годом требования к браузерам и web приложениям становятся жестче и жестче. Те года, когда требовалась только разметка информации давно прошли, а большие запросы от клиента к серверу сменяются запросами от сервера к клиенту и кнопка “Обновить” начинает терять свою надобность.

Динамические сайты, общение клиента с сервером, новые возможности, все это начинается со старого доброго и всем знакомого PHP. Первая технология в web программировании позволяющая отправлять запросы на сервер и генерировать страницы. Большие массы статичных html страниц уходят в прошлое, на смену приходит всего лишь несколько php. С каждой новой версией язык становился функциональнее, мощнее, нарастал всякими плюшками, шишками и примочками, и в настоящее время позволяет реализовать почти все возможности сервера. Однако весь его смысл – это обработка запросов приходящих на сервер и вывод ответа на эти запросы. То есть при отправлении данных формы страницы, переходе по ссылке и т.д., браузер клиента отсылает данные на сервер и в зависимости от них сервер генерирует страницу. Страница генерируется с нуля и полностью. Так же какие-либо действия, изменения и события осуществляются только по запросам, поэтому чтобы проверить появилась ли какая-нибудь новая информация на сайте нужно обновлять страницу или заходить на нее заново. С увеличением потока информации по сетям и в интернете приходилось постоянно тыкать “Обновить”, а серверы не справлялись с такими нагрузками и это уже становилось проблемой.

Требования к web приложениям растут: хочется чтобы сайты обновлялись быстрее, становились более интерактивными и удобными. И в 2005 году появляется новая технология AJAX (Asynchronous Javascript and XML) или в простонародье “аякс“. Суть та же – по какому-нибудь событию или действию браузер клиента отсылает запрос на сервер, сервер обрабатывает его и отсылает ответ. Но самое главное – страница не генерируется заново полностью, а только какая-то часть страницы (блок, картинка, текст и т.п.), то есть сервер в ответе присылает только часть страницы. Таким образом полностью обновлять страницу уже не обязательно. С использованием AJAX‘а страницы стали еще динамичнее, удобнее, быстрее, легко и просто стало произвести обновление страниц в реальном времени. Нагрузка на серверы спала, потому что запросы были уже не массивные и генерация страниц уже не занимает много времени. К тому же с разработкой формата данных JSON (JavaScript Object Notation) в ответе сервера могут находиться не только элементы страницы, но еще и переменные. Таким образом web приложение становится интерактивным и функциональным приложением, почти стационарной полноценной программой. Однако ко всем этим удобствам и плюсам суть остается прежней – чтобы проверить обновление нужно что-то нажать или куда-то тыкнуть – только тогда данные пойдут на сервер и вернется ответ. Вся эта технология построена на JavaScript‘е, что может вызвать проблемы у клиентов, в браузерах которых отключен JavaScript или в которых он глючит.

Сейчас на этот вопрос смотрят с другой стороны и довольно недавно вышла новая технология – Node.js. Точнее это не технология, а наиболее популярная библиотека JavaScript основанная на движке V8 (за что спасибо великому Google :D). Да, снова JavaScript, но он уже на стороне не клиента а сервера. На сей раз применяется совершенно другой подход – теперь не клиент отправляет запрос на сервер, а сервер сам отправляет запрос клиенту. То есть вместо того, чтобы сидеть и ждать какое-то время и нажимать “Обновить” или какую-нибудь кнопку в web приложении сервер сам за нас все это делает, это грубое объяснение. Суть вот в чем: перед нами экран монитора в котором открыта страница какого-то сайта. По ту сторону монитора сервер. Сервер ожидает когда у него появится информация, нужная нам, и когда это случилось (либо просто прошло какое-то время) он отправляет клиенту запрос. Запрос приходит к нам и вуаля – страница (либо часть страницы) обновилась, без какого-либо нашего участия. Таким образом у нас уже нет необходимости самим обновлять страницу. Хоть JavaScript и считается медленным языком, Node.js очень хорошо справляется с высокими нагрузками и быстро обрабатывает информацию. Везде есть подвох и это не исключение. Node.js – молодой проект и полностью стабильной библиотеки пока еще нет, поэтому довольно часто попадаются ошибки, глюки и сбои.

Время идет, все меняется, технологии улучшаются, требования растут… Я думаю что не за горами то время, когда web приложения по функциональности будут ничем не уступать стационарным. От PHP нам никуда не деться, потому что он самый популярный, удобный и оптимальный серверный язык программирования. AJAX дал существенный толчок в скорости, удобстве и популярности web приложений. А Node.js молодой и быстроразвивающийся проект, на основе которого строят свои приложения такие гиганты как: Вконтакте, Яндекс, Mail.ru и т.д. Так что считаю, что он покажет еще много чего интересного и пора переходить на новые технологии.

Поделиться записью с друзьями в социальных сетях.

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

Оставить ссылку на одну из записей Вашего блога (требуется RSS лента на блоге).