powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Как показать предыдущее состояние ajax страницы при возврате по кнопке "назад"
25 сообщений из 51, страница 1 из 3
Как показать предыдущее состояние ajax страницы при возврате по кнопке "назад"
    #39170458
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На этом форуме столько споров вокруг java и js, что думаю, тут точно люди знают как сделать след-ее:
- как показать предыдущее состояние ajax страницы при возврате по кнопке "назад" таким как оно было когда юзер перешел с этой страницы?

jsp:

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
<script src="http://code.jquery.com/jquery-1.10.2.min.js" type="text/javascript"></script>
<script src="js/jquery.history.js" type="text/javascript"></script>
<script src="js/app-ajax.js" type="text/javascript"></script>

</head>
<body>
	<strong>Ajax Response</strong>:
	<div id="ajaxGetUserServletResponse"></div>
	<button onclick="push1()">pushState 1</button>
	<p> <a href="help.html">help.html</a> </p>
</body>



скрипт
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
(function(window,undefined){
	var
		State = History.getState(),
		$log = $('#log');

	History.log('initial:', State.data, State.title, State.url);

	History.Adapter.bind(window,'statechange',function(){
		var State = History.getState();
		History.log('statechange:', State.data, State.title, State.url);
	});

})(window);

function push1() {
	
	History.pushState({state:1,rand:Math.random()}, "State 1", "?state=1");
	
	$.get('servlet_1', function(responseText) {
    		$('#ajaxGetUserServletResponse').text(responseText);
    });
	
}



сервлет
Код: java
1.
2.
3.
4.
5.
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	String greetings = "Hello from Servlet 1";
	response.setContentType("text/plain");
	response.getWriter().write(greetings);
}



Проблема в том, что после того как обновлено значение div id="ajaxGetUserServletResponse" и выполнен переход на help.html, то при переходе по кнопке "назад" содержимое ajaxGetUserServletResponse уже не отображается, т.к. оно не сохранилось. Как его сохранить - в этом вопрос.

p.s. спецом взял простой пример, чтобы проще было объяснять. тут используется history.js.
...
Рейтинг: 0 / 0
Как показать предыдущее состояние ajax страницы при возврате по кнопке "назад"
    #39170478
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rema174,
для хранения можно использовать localStorage
но проще блокировать кнопки назад /вперёд
а вместо ajax- использовать ws
...
Рейтинг: 0 / 0
Как показать предыдущее состояние ajax страницы при возврате по кнопке "назад"
    #39170481
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вадя,

а без локал сторэдж, средствами html5 history api это возможно сделать?
блоктровать кнопки - мне бы не понравилось... ws - никогда не имел дело, но ни разу не сомневался, что вспомнишь :) наверное, если кто-то тут спросит про хелловорлд ты тоже скажешь, что проше через вебсокет делать )
...
Рейтинг: 0 / 0
Как показать предыдущее состояние ajax страницы при возврате по кнопке "назад"
    #39170491
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rema174вадя,

а без локал сторэдж, средствами html5 history api это возможно сделать?
блоктровать кнопки - мне бы не понравилось... ws - никогда не имел дело, но ни разу не сомневался, что вспомнишь :) наверное, если кто-то тут спросит про хелловорлд ты тоже скажешь, что проше через вебсокет делать )
histori api не пробывал,
а почему блокировка назад/вперёд не нравится?
в чем смысл переходить назад? ведь если что-то изменил- сохранено в базе, и при переходе назад, должно отобразиться уже измененное.
в принципе ( как пример такой необходимости) это переход к просмотру корзины и обратно.
но для этого удобнее открывать новую вкладку.
и если использовать ws, то можно с одной вкладки обновлять данные на другой (в корзине)
и в этом случае переход назад не нужен,даже вреден.

ну я просто хочу найти соратников, что б лучше использовать ws, а то скучно в одиночку...
...
Рейтинг: 0 / 0
Как показать предыдущее состояние ajax страницы при возврате по кнопке "назад"
    #39170538
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rema174,
https://developer.mozilla.org/ru/docs/Web/API/History_API
но я бы не удивился что при возврате на страничку "она не такая".
Юзверь не дурак понимает что со страницы он ушёл)).
...
Рейтинг: 0 / 0
Как показать предыдущее состояние ajax страницы при возврате по кнопке "назад"
    #39170549
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123,

за ссылку спасибо, но я это уже читал -а вот как его применить к проекту чтобы сработало... тем более это html 5 history, а у меня показало History.js, но справедливости ради можно сказать, что они похожи. Тем не менее вопрос открыт - такая простой проектик, а как прикрутить... я тут переделал проект (другой) обратно на "no-ajax" так у меня это заняло ну минут десять, а сколько я провозился с этим аяксом и вспонимнать неохота.
...
Рейтинг: 0 / 0
Как показать предыдущее состояние ajax страницы при возврате по кнопке "назад"
    #39170552
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rema174,
1. AJAX не применяют при переходах по страницам.
Его применяют либо на события - клики юзверей, либо на ОДНОстраничном сайте.
Т.е. придумай пример получше.
2. По той ссылке есть примеры и код на гитхабе. Нужно сделать примеры и тогда поймёшь.
...
Рейтинг: 0 / 0
Как показать предыдущее состояние ajax страницы при возврате по кнопке "назад"
    #39170559
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123AJAX не применяют при переходах по страницам.
Его применяют либо на события - клики юзверей, либо на ОДНОстраничном сайте.
Т.е. придумай пример получше.
если для одностаничного сайта, то я б и не спрашивал
...
Рейтинг: 0 / 0
Как показать предыдущее состояние ajax страницы при возврате по кнопке "назад"
    #39170563
breath
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>1. AJAX не применяют при переходах по страницам.
можно
Код: javascript
1.
2.
3.
4.
redirect = function(uri) {
	$("body").addClass("busy");
	window.location = uri;
};



по состоянию;
создаем линк, смотрим где мы сейчас, сохраняем нужные значения всех или нужных элементов куда нибуть, потом проверяем кто на текущем экране и устанавливаем сохраненные значения

Код: javascript
1.
2.
3.
4.
5.
6.
var a = $("<a/>", { "href": "/request" + requestId, "title": "open", //если таргет нужен//"target": "_blank"});
	a.click(function (event) {
               detectMyLocation();
                storeValues();
		event.stopPropagation();
	});



вариантов вроде много придумать можно
...
Рейтинг: 0 / 0
Как показать предыдущее состояние ajax страницы при возврате по кнопке "назад"
    #39170565
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
breath,
только имеется в виду кнопки назад/вперёд браузера.....
...
Рейтинг: 0 / 0
Как показать предыдущее состояние ajax страницы при возврате по кнопке "назад"
    #39170566
breath
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
window.location при этом сменится ?
...
Рейтинг: 0 / 0
Как показать предыдущее состояние ajax страницы при возврате по кнопке "назад"
    #39170691
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вадяа почему блокировка назад/вперёд не нравится?
в чем смысл переходить назад? ведь если что-то изменил- сохранено в базе, и при переходе назад, должно отобразиться уже измененное.
оно не обязательно должно(будет) сохраняться в базе. протсо для улучшения юзер экспириенса есть решения которые лучше делать аяксом - у меня именно такое.

и что такое блокировка кнопок? если кнопок браузера, то это разрыв шаблона юзер экспиринеса. я время от времени пользуюсь таким сайтом - бакн-клиент, там кнопка назад вперед действительно выключана, и каждый раз выскакиевает окно с инфой почему они так сделали, вместо кнопок браузера у них кнопки программные - это раздражает, так как по привычке тянешся на кнопки браузера.

вадяну я просто хочу найти соратников, что б лучше использовать ws, а то скучно в одиночку...
ааа. а то уже весь форум наслышан про возможности ws )
...
Рейтинг: 0 / 0
Как показать предыдущее состояние ajax страницы при возврате по кнопке "назад"
    #39170707
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
breathwindow.location при этом сменится ?

для моего примера? конечно

http://localhost:8080/MyWebapp/?state=1 --> http://localhost:8080/MyWebapp/help.html --> http://localhost:8080/MyWebapp/?state=1
...
Рейтинг: 0 / 0
Как показать предыдущее состояние ajax страницы при возврате по кнопке "назад"
    #39170709
breath
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вопрос(и сразу ответ) был любителю волшебных ws, на его сообщение.
но win.location сменится обязательно, по сути он (url) будет ключом к набору сохраненных данных.
...
Рейтинг: 0 / 0
Как показать предыдущее состояние ajax страницы при возврате по кнопке "назад"
    #39170744
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
всем спасибо, получилось с локал сторедж

только вопрос - локал сторедж сохраняет вроде в пределах окна браузера? потому что закрываю браузер, в котором произошло сохранение в локалсторедж, открываю, а значения уже есть...

если из аякс-страницы в страницу имена переменных совпадают, то как их лучше сохранять:
- имя url+varname ?
- все ложить в переменную с именем url ?
...
Рейтинг: 0 / 0
Как показать предыдущее состояние ajax страницы при возврате по кнопке "назад"
    #39170756
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rema174,
уже тыщу лет сохраняют в куки поля на странице. Тогда и твой вопрос отпадёт.
Если работаем с БД, то сохраняют фильтр или условие в этих куках. А не значения 10000руб при запросе из БД.
rema174если из аякс-страницы
если термин аякс-страница, то это всё таки - одностраничное приложение. А урл мы делаем фальшивым.
Почему вместо нормального урла и страницы напр. "ИмяСтранички.JSP" ( http://localhost:8080/MyWebapp/ИмяСтранички)
делать вывод из сервлета - непонятно.
Но это дело автора.
Если бы автор не брал ЦЕЛИКОМ страницу по AJAX из сервлета, то и темы такой бы вообще не было.
...
Рейтинг: 0 / 0
Как показать предыдущее состояние ajax страницы при возврате по кнопке "назад"
    #39170763
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123,

мне кажется storage удобнее чем куки. хотя и не использовал я этих куков никогда на самом деле... тем более куки можно и вырубить, хотя обычный юзверь вообще не понимает кто такие куки )

ну, по сути, та часть приложения, что я называю аякс-страница и есть одностраничная, там и урл-то синтетический, типа mywebapp\#1 и т.д., хотя я понимал одностраничники несколько иначе...

авторПочему вместо нормального урла и страницы напр. "ИмяСтранички.JSP" ( http://localhost:8080/MyWebapp/ИмяСтранички) делать вывод из сервлета - непонятно.
Но это дело автора.

потому что из сервлета удобно брать динамические серверные данные, что тут непонятного? тем более, я использую сервлет в скрипте, а jsp страницу ты куда в скрипте притулишь?

авторЕсли бы автор не брал ЦЕЛИКОМ страницу по AJAX из сервлета, то и темы такой бы вообще не было.
нет. где в примере я беру целиком страницу из сервлета? вопрос был за конкретный пример.
...
Рейтинг: 0 / 0
Как показать предыдущее состояние ajax страницы при возврате по кнопке "назад"
    #39170767
breath
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> а jsp страницу ты куда в скрипте притулишь
так же вызвать как сервлет /myPage.jsp
и она станет сервлетом позже
...
Рейтинг: 0 / 0
Как показать предыдущее состояние ajax страницы при возврате по кнопке "назад"
    #39170768
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
breath,
точно. можно и так, если есть необходимость предварительно форматировать данные в странице.
...
Рейтинг: 0 / 0
Как показать предыдущее состояние ajax страницы при возврате по кнопке "назад"
    #39170774
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я тут подумал, что там где я хотел обойтись хистори для показа предыдущих состояний страниц, можно было бы обойтись запоминанием положения скрола от страницы к страницы, а сами страницы все-таки не делать аяксом - это запоминание скрола средствами js можно сделать?
...
Рейтинг: 0 / 0
Как показать предыдущее состояние ajax страницы при возврате по кнопке "назад"
    #39170803
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
класс, все работает, пошел дальше осваивать js))
...
Рейтинг: 0 / 0
Как показать предыдущее состояние ajax страницы при возврате по кнопке "назад"
    #39170805
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rema174,
localstorage,
...
Рейтинг: 0 / 0
Как показать предыдущее состояние ajax страницы при возврате по кнопке "назад"
    #39170821
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rema174запоминание скрола средствами js можно сделать?
HTML якоря которые в урл после #якорь
https://www.google.ru/search?q=hml якорь&ie=utf-8&oe=utf-8&gws_rd=cr&ei=ErLAVrC9OOTg6ASQoZ2gCQ
?
...
Рейтинг: 0 / 0
Как показать предыдущее состояние ajax страницы при возврате по кнопке "назад"
    #39170822
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rema174нет. где в примере я беру целиком страницу из сервлета? вопрос был за конкретный пример.
просто ты употреблял термин AJAX страница , а не AJAX данные в странице. Например, курс валюты при нажатии на кнопку.
...
Рейтинг: 0 / 0
Как показать предыдущее состояние ajax страницы при возврате по кнопке "назад"
    #39171235
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123,
я попробовал запоминать скрол, но страница дергается, т.к. на ней комплексный контент - это работает только на статическом контенте... я думаю с якорями, если они работают по такому же принципу, будет тоже самое.
...
Рейтинг: 0 / 0
25 сообщений из 51, страница 1 из 3
Форумы / Java [игнор отключен] [закрыт для гостей] / Как показать предыдущее состояние ajax страницы при возврате по кнопке "назад"
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]