Новые методы

Новые методы.

Когда использование объекта XMLhttpRequest стало привычным делом, а Ajax-приложения с успехом завоевали Сеть, принципы навигации и доступа к документам навсегда изменились. Стало распространенной практикой добавлять на страницы небольшие сценарии, умеющие извлекать информацию с серверов и отображать ее в текущем документе без необходимости перезагружать страницу или загружать новую. Пользователи взаимодействуют с современными веб-сайтами и приложениями, не выходя за пределы одного URL. Они получают информацию, вводят данные и собирают результаты обработки, не покидая одну-единственную страницу. Сеть перешла на новый уровень и теперь эмулирует настольные приложения.

Однако браузеры все так же отслеживают активность пользователя через URL-адреса. По сути, URL-адреса — это данные из списка навигации, указывающие, где пользователь находится. Но поскольку в новых веб-приложениях разработчики стараются не использовать URL-адреса, очевидно, что теряются важные шаги процесса. Пользователи могут обновить данные на веб-странице десяток раз, однако в списке истории не останется никаких записей о том, какие действия были выполнены.

В существующий API истории были добавлены новые методы и свойства, позволяющие вручную из JavaScript-кода модифицировать URL-адреса на панели Location (Местоположение), а также в списке истории. Теперь мы можем с легкостью добавлять фальшивые URL-адреса в список истории, тщательно отслеживая активность пользователя.

— pushState(state, title, url). Этот метод создает новую запись в истории сеанса. Атрибут state объявляет значение состояния записи. Он используется для идентификации записи впоследствии и может содержать строку или JSON-объект. Атрибут title представляет собой заголовок записи, а атрибут url — это URL-адрес создаваемой записи (он заменит текущий URL-адрес на панели Location (Местоположение));

— replaceState(state, title, url). Этот метод работает аналогично pushState(), но не создает новую запись. Вместо этого он заменяет информацию в текущей записи;

— state. Это свойство возвращает значение состояния текущей записи. Всегда равно null, если только не было объявлено в одном из перечисленных ранее методов посредством атрибута state.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *