Найти в Дзене
toTake

Подмена URL без reload страницы

Приветствую, рубрика IT снова в колее.

На сей раз поговорим о такой возможности браузера как: замена URL страницы, БЕЗ автоматического перехода на этот URL.

p.s Статья не имеет никакого отношения к технологии AJAX.

В этом нам поможет BOM. Что это - вкратце рассказывается вот здесь.

Через BOM мы получаем доступ к объекту History:

window.history
window.history

History - это история сессии (session history) контекста браузера (browsing context).

Browsing context - эта среда (environment), в которой объекты Document показаны пользователям. Вот пример "среды" в которой функционирует объект Document:

пример "среды" в которой функционирует объект Document
пример "среды" в которой функционирует объект Document

А каждый объект Window имеет связанный с ним объект Document.

Контекст браузера ( browsing context ) появляется вместе с созданием вкладки или окна веб браузера. Тот же <iframe> аналогично создает свой контекст.

Все, круг, замкнулся! Долой прелюдии, пора "потрогать" History!

Свойства и методы History:

Свойства и методы History
Свойства и методы History

Мы рассмотрим метод pushState -именно он "гвоздь" данной статьи!

Допустим, мы на ресурсе https://yandex.ru хотим изменить URL на https:yandex.ru/Что-нибудь-$дельное БЕЗ всяких перезагрузок!

хотим изменить URL на https:yandex.ru/Что-нибудь-$дельное БЕЗ всяких перезагрузок!
хотим изменить URL на https:yandex.ru/Что-нибудь-$дельное БЕЗ всяких перезагрузок!

Открываем консоль и делаем следующее действие:

Открываете консоль и делаете следующие действие: history.pushState(null,null,"Что-нибудь-$дельное")
Открываете консоль и делаете следующие действие: history.pushState(null,null,"Что-нибудь-$дельное")

Ну что друзья, как оно Вам? Обратите внимание если вы вдруг изучаете, допустим Redux - обратите внимание на history.

Всякие роуты тот же React-router без "низкоуровневого" объекта history не обойдется!

Как всегда, всего Вам самого лучшего и помните: Каждый может понять абсолютно все, главное правильно преподнести!

#айти #программирование #разработка #code #frontend #web #technology #bom