Изоморфный JavaScript

редактировать
Не путать с изоморфизмом.

Изоморфный JavaScript, также известный как универсальный JavaScript, описывает приложения JavaScript, которые работают как на клиенте, так и на сервере.

Содержание

  • 1 Механизм
  • 2 Имя
  • 3 преимущества
  • 4 рамки
  • 5 ссылки

Механизм

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

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

имя

Название термина «Изоморфный JavaScript» вызвало споры. Термин «изоморфный» впервые был придуман Чарли Роббинсом из Nodejitsu в одном из сообщений в блоге компании. Спайк Брем, инженер-программист из Airbnb, написал еще одно сообщение в блоге, используя тот же термин. Однако другие предложили вместо этого использовать термин универсальный JavaScript.

Льготы

  • Улучшение взаимодействия с пользователем: отображая важные части приложения с реальными данными на стороне сервера, изоморфное приложение может отображать значимую начальную страницу. С другой стороны, клиентское приложение визуализации не может отображать какую-либо значимую информацию, пока не получит все необходимые внешние данные. А пока пользователь видит только индикатор загрузки.
  • Более быстрое общее время загрузки: хотя изоморфное приложение будет медленнее отвечать на начальную страницу по сравнению с клиентским приложением для рендеринга (поскольку оно извлекает данные и отображает больше разметок на стороне сервера перед ответом), общее время завершения до конечного пользовательского интерфейса составляет быстрее, потому что доступ к данным на стороне сервера намного быстрее, чем запросы API на стороне клиента.
  • Более предсказуемая поисковая оптимизация и индексация сайта: чтобы индексировать контент, отображаемый приложениями JavaScript на стороне клиента, робот Googlebot должен запускать эти приложения JavaScript в полной среде браузера и захватывать визуализированную модель DOM. Это связано со сложными проблемами совместимости браузеров. Кроме того, поскольку приложения JavaScript могут отправлять запросы AJAX для дальнейшей обработки, у робота Googlebot должна быть политика, которая контролирует доступ приложений к сети. Вот почему робот Googlebot по-прежнему не может правильно проиндексировать ваше приложение JavaScript.

Каркасы

Было создано несколько изоморфных фреймворков и библиотек JavaScript, в первую очередь Meteor (framework). Другие включает Next.js, Nuxt, Rendr, Дерби, Мис, Эзель и Catberry.

Рекомендации

  1. ^ a b "Является ли" изоморфный JavaScript "хорошим термином?". 2ality. Архивировано 21 июня 2017 года. Проверено 15 июня 2017.
  2. ^ Inc., Nodejitsu. «Масштабирование изоморфного кода Javascript | Nodejitsu Inc.». blog.nodejitsu.com. Архивировано 3 июля 2017 года. Проверено 15 июня 2017.
  3. ^ AirbnbEng (11-11-2013). «Изоморфный JavaScript: будущее веб-приложений». Airbnb Engineering amp; Data Science. Архивировано 17 июня 2017 года. Проверено 15 июня 2017.
  4. ^ Джексон, Майкл (2015-06-08). «Универсальный JavaScript». Майкл Джексон. Архивировано 21 июня 2017 года. Проверено 15 июня 2017.
Последняя правка сделана 2023-03-19 04:22:09
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте