При нажатии на ссылку JavaScript используется, чтобы вызвать две вещи:
- Документ преобразован в другое состояние
- Новый URL-адрес помещается в историю
(JavaScript также предотвращает нормальное поведение ссылки (загрузка новой страницы)).
Вставив URL-адрес в историю, вы фактически вступаете в силу делая заявление, что URL представляет документ, в который вы преобразовали страницу.
Таким образом, чтобы сделать это реальностью, вам нужно, чтобы сервер для этого URL обслуживал документ HTML, который даст вам это состояние.
Это означает, что вам необходимо:
- Создать документ в его окончательном состоянии для каждого URL с сервера
- Сгенерируйте документ в его окончательном состоянии для каждого URL со стороны клиента JavaScript
Это можно сделать с помощью страниц со статикой c, созданных вручную, или с повышением уровня сгенерированного программным способом stati c страниц или сервера стороннее программирование.
Да, это обычно требует много работы . Хотя pushState
сам по себе быстрый и простой, он не очень полезен без большой работы, проделанной вокруг него.
Вы можете уменьшить много усилий, используя общие шаблоны или создавая страницы вокруг фреймворки вроде Next. JS, которые выполняют рендеринг клиентского кода на стороне сервера.
Некоторые люди предпочитают обслуживать один и тот же скелет HTML документа для каждого URL и загружать весь контент с помощью JavaScript… но это ломается, если JS терпит неудачу и не является хорошей пищей для поисковых систем.