Как реализован роутинг на kinopoisk.ru и slack.com?

Доброго дня!
Как реализован роутинг на таких сайтах как https://kinopoisk.ru и https://slack.com? При переходе по ссылке страница не релоадится, а просто обновляется через ajax.
Прошу заметить, что там все работает не на хеш роутинге (Что объяснило бы, отсутствие релоада), а именно на взрослом роутинге со стороны сервера.

Или это все сделано через перехвал нажатий на ссылки и отмены дефолтного действия, по средствам JS? А дельше просто парсинг ссылки с ajax.
  • Вопрос задан
  • 708 просмотров
Решения вопроса 1
miraage
@miraage
Старый прогер
history.pushState

// EDIT для тех, кто в танке (ПСЕВДОКОД)

$('a').on('click', function(event) {
  event.preventDefault();
  var url = $(this).attr('href');
  Router.change(url);
});

// Router.change
function change(url) {
  history.pushState(url);

  var view = this.getView(url);
  ViewManager.setView(view);

  var controller = this.getController(url);
  controller.dispatch();
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
copist
@copist
Empower people to give
Чтобы определить, как сайт подгружает информацию, воспользуйся панелью отладки в браузере, закладка "Network" (иллюстрация)
Если при клике по ссылке появился запрос типа XHR, то это AJAX
Если типа "DOC", то это обычный переход по ссылке
Если клик был, а запросов на сервер не было, значит данные уже были загружены в браузер и хранятся, например, в оперативной памяти или в LocalStorage браузера (иллюстрация)

Если сайт по большей части делает только подгрузку данных, то это веб-приложение архитектуры RIA (Rich Internet Application).
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы