Статьи

Изоморфные JavaScript-приложения — будущее Интернета?

Один из самых известных девизов в сети — Java « Пиши однажды, запускай везде» . Но относится ли этот девиз только к Java? Можем ли мы использовать его для описания JavaScript тоже? Ответ — да.

В этой статье я познакомлю вас с концепцией изоморфных приложений JavaScript , опишу, что они из себя представляют, и укажу на ресурсы, которые помогут вам разработать приложения такого типа.

Как мы приехали сюда

Много лет назад в Интернете было множество статических страниц, созданных с использованием HTML и CSS без особой интерактивности. Каждое действие пользователя требовало от сервера создания и обслуживания всей страницы. Благодаря JavaScript разработчики начали создавать приятные эффекты, но с появлением Ajax началась революция. Веб-разработчики начали писать код, который мог связываться с сервером для отправки и получения данных без необходимости перезагрузки страницы.

По прошествии нескольких лет обязанности клиентского кода значительно выросли, что привело к появлению нового типа приложений, известного как одностраничное приложение (SPA). В SPA все необходимые ресурсы извлекаются с одной загрузкой страницы или динамически загружаются и добавляются на страницу по мере необходимости. Некоторыми примерами SPA являются Gmail и редактор StackEdit .

Соглашения SPA обеспечивают лучшую интерактивность, поскольку почти все их операции выполняются на клиенте, сводя к минимуму обмен данными с сервером. К сожалению, у них также есть некоторые серьезные проблемы. Давайте обсудим некоторые из них.

Производительность

Поскольку для SPA требуется больше кода на стороне клиента, чем для статических страниц, объем загружаемых данных увеличивается. Это приводит к более медленному начальному времени загрузки, что может иметь серьезные последствия, такие как разочарование конечных пользователей и потеря дохода. Согласно одной статье Microsoft

Исследование Bing показало, что увеличение времени загрузки страницы на 10 мс ежегодно обходится сайту в 250 тысяч долларов.

SEO

Поскольку одностраничные приложения полагаются на выполнение JavaScript, серверы не производят весь контент HTML, к которому они привыкли. Поэтому у веб-сканеров много трудностей при индексации страниц. Эти сканеры являются программами, которые отправляют запросы на веб-сервер и анализируют результат в виде необработанного текста, не интерпретируя и не выполняя контент, как в обычном браузере с JavaScript. Недавно Google улучшил свой веб-сканер, чтобы он мог работать со страницами на основе JavaScript, но как насчет Bing, Yahoo и всех других поисковых систем? Хорошая индексация имеет решающее значение для любого бизнеса, так как обычно приводит к увеличению числа посещений и увеличению доходов.

Изоморфные JavaScript-приложения

Изоморфные приложения JavaScript — это приложения, написанные на JavaScript, которые могут работать как на клиенте, так и на сервере. По этой причине вы можете написать код один раз, а затем выполнить его на сервере для визуализации статических страниц и на клиенте, чтобы обеспечить быстрое взаимодействие. Таким образом, этот подход берет лучшее из двух миров и позволяет вам избежать двух проблем, описанных ранее.

Сегодня существует несколько платформ, которые помогут вам в разработке такого рода приложений. Один из них — возможно, самый известный — это Метеор . Meteor — это JavaScript-инфраструктура с открытым исходным кодом, написанная поверх Node.js, которая ориентирована на веб-приложения в реальном времени. Еще один проект, о котором я хочу упомянуть, это Rendr . Это небольшая библиотека, разработанная Airbnb, которая позволяет запускать приложения Backbone.js как на клиенте, так и на сервере.

Все больше компаний используют Node.js для своих продуктов. Совместное использование кода между клиентом и сервером становится все более распространенным и естественным выбором, и, на мой взгляд, это будущее веб-разработки. Эта тенденция усиливается за счет обмена шаблонами через библиотеки, такие как React .

Вывод

В этой статье я познакомил вас с концепцией изоморфных приложений JavaScript, нового подхода к разработке приложений, который сочетает в себе лучшее из серверного и клиентского программирования. Мы также обсудили, какие проблемы пытается решить этот подход, и некоторые проекты, которые вы можете использовать сегодня для реализации этой философии.

Вы уже слышали об изоморфных приложениях JavaScript? Вы разработали один? Каким был ваш опыт?