Практически AJAX какво да правите с бутона за връщане назад в браузърите
Същността на проблема
Фигура 1. Хоризонтални връзки
Уеб сайт и уеб приложение
Подходът, който трябва да предприемете, за да разрешите този проблем, зависи от това дали разработвате уебсайт или уеб приложение. Понякога е трудно да се разделят двете, но обикновено едно уеб приложение може да се разграничи по следните свойства:
Като пример за уебсайт, разгледайте Yahoo! Финанси и E*TRADE като уеб приложение. От гледна точка на потребителя мога да кажа, че не винаги е възможно да се направи ясна граница между тези два типа. Въпреки това уеб разработчиците трябва да решат от самото начало какво ще разработват: уебсайт или приложения? Ако разбирате това, тогава можете да зададете прост въпрос: при липсата на интернет какво най-добре описва вашето развитие: дали е набор от документи на Word или настолно приложение? Отнасяйте се към уеб приложенията наравно с приложенията за настолен компютър, като единствената разлика е, че първото все още се нуждае от браузър, за да функционира правилно. Друг въпрос, който трябва да си зададете е: "Вашата основна цел ще бъде да предоставите информация или да предоставите функционалност?"
Най-лесно е просто да игнорирате повредата на бутона за връщане назад на браузъра, но не можете да го игнорирате напълно. Вместо да създавате цялостно приложение, което използва голям брой вертикални връзки и е обвързано с един URL адрес, създайте няколко хоризонтални връзки на местата, където наистина е необходимо. С други думи, използвайте хоризонтални връзки, за да отделите части от вашето приложение, например по същия начин, както се прави в хартиената литература (книгата е разделена на части и глави). ИзползвайкиРазумната комбинация от традиционни хоризонтални връзки с вертикални връзки може да балансира силата на AJAX с възможността за навигация в хронологията на браузъра.
Второ решение: използвайте специална библиотека AJAX
Забележка: основните методи за създаване на псевдохоризонтални връзки са групирани по-долу, опитах се да ги допълня с известни за мен примери, разширявайки списъка на оригиналната статия.
-
Забележка: същността на решението: всеки път, когато се извика AJAX, текущият номер на елемент в стека „история“ се добавя като котва към URL адреса на страницата, всъщност само увеличавайки числата. Когато щракнете върху бутона за връщане назад в браузъра, URL адресът на страницата се променя на предишния. На всеки 100 (200, 400, 1000) милисекунди страницата проверява дали нейната котва в URL адреса се е променила, ако котвата се е променила, тогава се зареждат данните, съответстващи на текущата котва (= елемент в стека „история“).
Plex е AJAX рамка с отворен код, която поддържа много функции, включително емулиране на бутона за връщане назад в браузъра.
Dojo е друга AJAX рамка с отворен код, която предоставя известна AJAX функционалност и емулация на бутон за връщане назад на браузъра.
Описание на подхода и демо версия.
Не мога да не спомена и една добра рецензия на Владимир Келман, в която се обсъждат някои от горните решения.
Трето решение: Осигурете на потребителите удобен алтернативен бутон за връщане назад
Въпреки това, най-лошото решение, което съм виждал, е да се създаде алтернативен бутон за връщане назад в самата уеб страница с помощта на AJAX методи.Много потребители трудно можеха да свикнат с границата между браузъра и уеб страницата, те успяха да разберат къде свършва браузърът и започва самата страница. Няма нужда да увеличавате неудобството им. В крайна сметка не можете да гарантирате, че онези потребители, които лесно се справят с това, ще могат да свикнат с друга „иновация“ и да променят навиците си в името на вашия сайт. Предоставянето на потребителите на алтернативна навигация и функционалност ще бъде достатъчно, но няма начин да се създаде отново този бутон.
И накрая, ако ограничите функционалността на стандартната хронология на браузъра, когато създавате уеб приложение, моля, уведомете потребителите за това по един или друг начин. AJAX не е първият метод за ограничаване на тази функционалност и е вероятно потребителите също да не научат за него за първи път от вас. (Има също аплети, Flash и приложения за електронна търговия, които могат да таксуват кредитна карта отново, като натиснете бутона за връщане назад на браузъра.) Тежестта на отговорността, която в крайна сметка възлагате на потребителя за действията му на сайта, ще зависи от вашата корпоративна култура, но защо не я направите малко по-лека?
И тук можете да получите грант за тестов период на Yandex.Cloud. Необходимо е само да въведете "Habr" в полето "секретна парола".