2012-04-09 2 views
22

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

Итак ...

  • Что Routing предоставить вам, что регулярный якорь или ссылка не?
  • Уместен ли он только в определенных условиях? (т. е. ASP.NET или прямой HTML)
  • Для чего это?
  • Какова цель его существования?
+0

Превосходно сформулированные. – orbfish

ответ

47

Маршрутизация - это способ организации и управления состояниями приложений. Рамка маршрутизации в 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.

+0

WOW! Я полностью понял это сейчас! –

+0

Итак, очевидно, что это не будет использоваться в приложении ASP.NET MVC или SharePoint ... правильно? –

+1

SharePoint, возможно, нет. SharePoint управляет собственной разметкой, поэтому вы не будете заниматься такой ориентацией на фронт. Возможно, ASP.NET MVC можно использовать в качестве серверной технологии для RIA с поддержкой JavaScript, поэтому ответ для этого «возможно». Ключевой вопрос: используете ли вы одностраничное приложение JavaScript. – zetlen

Смежные вопросы