Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Как показать предыдущее состояние ajax страницы при возврате по кнопке "назад" / 25 сообщений из 51, страница 1 из 3
13.02.2016, 21:00
    #39170458
rema174
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как показать предыдущее состояние ajax страницы при возврате по кнопке "назад"
На этом форуме столько споров вокруг 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
13.02.2016, 21:39
    #39170478
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как показать предыдущее состояние ajax страницы при возврате по кнопке "назад"
rema174,
для хранения можно использовать localStorage
но проще блокировать кнопки назад /вперёд
а вместо ajax- использовать ws
...
Рейтинг: 0 / 0
13.02.2016, 21:46
    #39170481
rema174
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как показать предыдущее состояние ajax страницы при возврате по кнопке "назад"
вадя,

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

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

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

за ссылку спасибо, но я это уже читал -а вот как его применить к проекту чтобы сработало... тем более это html 5 history, а у меня показало History.js, но справедливости ради можно сказать, что они похожи. Тем не менее вопрос открыт - такая простой проектик, а как прикрутить... я тут переделал проект (другой) обратно на "no-ajax" так у меня это заняло ну минут десять, а сколько я провозился с этим аяксом и вспонимнать неохота.
...
Рейтинг: 0 / 0
14.02.2016, 00:01
    #39170552
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как показать предыдущее состояние ajax страницы при возврате по кнопке "назад"
rema174,
1. AJAX не применяют при переходах по страницам.
Его применяют либо на события - клики юзверей, либо на ОДНОстраничном сайте.
Т.е. придумай пример получше.
2. По той ссылке есть примеры и код на гитхабе. Нужно сделать примеры и тогда поймёшь.
...
Рейтинг: 0 / 0
14.02.2016, 00:07
    #39170559
rema174
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как показать предыдущее состояние ajax страницы при возврате по кнопке "назад"
Petro123AJAX не применяют при переходах по страницам.
Его применяют либо на события - клики юзверей, либо на ОДНОстраничном сайте.
Т.е. придумай пример получше.
если для одностаничного сайта, то я б и не спрашивал
...
Рейтинг: 0 / 0
14.02.2016, 00:18
    #39170563
breath
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как показать предыдущее состояние ajax страницы при возврате по кнопке "назад"
>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
14.02.2016, 00:28
    #39170565
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как показать предыдущее состояние ajax страницы при возврате по кнопке "назад"
breath,
только имеется в виду кнопки назад/вперёд браузера.....
...
Рейтинг: 0 / 0
14.02.2016, 00:32
    #39170566
breath
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как показать предыдущее состояние ajax страницы при возврате по кнопке "назад"
window.location при этом сменится ?
...
Рейтинг: 0 / 0
14.02.2016, 13:35
    #39170691
rema174
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как показать предыдущее состояние ajax страницы при возврате по кнопке "назад"
вадяа почему блокировка назад/вперёд не нравится?
в чем смысл переходить назад? ведь если что-то изменил- сохранено в базе, и при переходе назад, должно отобразиться уже измененное.
оно не обязательно должно(будет) сохраняться в базе. протсо для улучшения юзер экспириенса есть решения которые лучше делать аяксом - у меня именно такое.

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

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

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

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

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

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

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

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

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

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

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


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