Подтвердить что ты не робот

Что вы покупаете для JavaScript?

Я смотрел на различные RIA и заметил, что некоторые люди используют или запрашивают Маршрутизацию JavaScript. Просто просматривая его, "Маршрутизация JavaScript" выглядит как способ пересечь ваш сайт... но я могу использовать простую ссылку для этого. Это означает, что я абсолютно "не понимаю".

Так...

  • Что Маршрутизация предоставляет вам, что обычный якорь или ссылка не работает?
  • Соответствует ли это только в определенных средах? (т.е. ASP.NET или прямой HTML)
  • Для чего это?
  • Какова цель его существования?
4b9b3361

Ответ 1

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

Если вы хотите перейти от одного состояния приложения, например. /admin/users, к другому, например. /admin/orders, вы можете использовать обычную ссылку, как вы предлагаете. Но тогда вы собираетесь заставить браузер перемещаться с одной страницы HTML на другую. Это, очевидно, обычный способ навигации по сети. Но в приложении JavaScript это довольно неэффективно!

Если вы запускаете сложное приложение в браузере в JavaScript, тогда это приложение должно выполнять большую работу при запуске. Он регистрирует обработчики событий, загружает и выполняет кучу JavaScript, и иногда визуализирует весь интерфейс страницы динамически (в случае ExtJS и нескольких других библиотек). Это много дополнительной работы для браузера, чтобы настроить приложение JavaScript на /admin/orders, что имеет много общего с тем, что находится в /admin/users. Более эффективный способ заключается в том, чтобы ссылка запускала событие, которое приложение отслеживает, и приложение реагирует, изменяя состояние приложения - возможно, удаляя или скрывая просмотр пользователей и заменяя его представлением заказов. Маршрутизация - это способ представления этих разных интерфейсов, используя токен - обычно фрагмент URL-адреса, например /admin/users -, чтобы отслеживать, где пользователь находится в вашем интерфейсе.

Это позволяет приложению поддерживать динамическую модель объекта, которая уже сожгла время и использовала память для создания. Это ускоряет работу пользовательского интерфейса, и, если вы используете управление историей URL через хэштег или pushState, он позволяет пользователю перемещаться по вашему приложению с помощью кнопок назад и вперед своего браузера, не перезагружая каждый актив на страницы каждый раз и вытирая состояние вашего приложения. Управление URL-адресами также обеспечивает глубокую привязку к какой-либо странице приложения: при загрузке ваш маршрутизатор приложений проверяет строку маршрута, которую он получает, токенизирует ее и загружает интерфейс, указанный вами в таблице маршрутизации.

Маршрутизация не требуется для управления сохранением, но это хороший способ организации ваших постоянных состояний. Часто система маршрутизации идет рука об руку с управлением историей URL, например Davis.js. Но есть также библиотеки маршрутизации, которые не конфликтуют с URI, которые поддерживают абстрактное токенированное состояние, которое вы можете использовать или отображать по своему усмотрению, например Crossroads.js.