Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.02.2013, 23:05   #1
soonner
Пользователь
 
Аватар для soonner
 
Регистрация: 14.03.2009
Сообщений: 97
Сообщение Сохранение данных при перезагрузке страницы

Всем доброго времени суток. Сейчас столкнулся с небольшой проблемой и надеюсь с вашей помощью решу ее.

И так суть проблемы. Как сделать так что бы при нажатии f5 все оставалось на своих местах?

У меня на сайте, есть, допустим, набор ссылок

Код HTML:
<li><a class="ajaxhref" href="tpl/time_line.php">Новости</a></li>
<li><a class="ajaxhref" href="tpl/my_friends.php">Друзья</a></li>
<li><a class="ajaxhref" href="tpl/my_message.php">Почта</a></li>
И есть небольшой блок

Код HTML:
<div class="right"></div>
В который с помощью js&ajax подгружаются данные

Код HTML:
$('.ajaxhref').click(function(e){
e.preventDefault();
var link = $(this).attr("href");
		
$("#header-nav A").removeClass("active");
$(".left A").removeClass("active");
$(this).addClass("active");
$.ajax({
	url: link,
	cache:false,
	beforeSend:function(){
	$(".right").html(" <div id='load' class='loading1'></div>");
		},
		success:function(html){
			$(".right").html(html);
		}
	});
	return false;
});
И все бы замечательно но при таком методе, при нажатии f5 страница будет перезагружена, и показана дефолтовая для блока .right.
soonner вне форума Ответить с цитированием
Старый 18.02.2013, 23:24   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Используй localStorage.
Что -то типа:
Код:
localStorage.setItem('MyDiv',тут содержимое что нужно сохранить)
И восстановление:
Код:
...innerHTML=localStorage.getItem('MyDiv');
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 18.02.2013, 23:50   #3
soonner
Пользователь
 
Аватар для soonner
 
Регистрация: 14.03.2009
Сообщений: 97
По умолчанию

О спасибо. Отличная идея, я думал в сторону печенек, но это тоже отлично работает.
Если кому интересно то код выглядит примерно так

Код HTML:
  <script>
  $(document).ready(function(){
	$('.ajaxhref').click(function(e){
	
		e.preventDefault();
		var link = $(this).attr("href");
		localStorage.setItem('current_link',link);
		$("#header-nav A").removeClass("active");
		$(".left A").removeClass("active");
		$(this).addClass("active");
		$.ajax({
			url: link,
			cache:false,
			beforeSend:function(){
				$(".right").html(" <div id='load' class='loading1'></div>");
			},
			success:function(html){
				$(".right").html(html);
			}
		});
		return false;
		
			
	});
	$.ajax({
			url: localStorage.getItem('current_link'),
			cache:false,
			beforeSend:function(){
				$(".right").html(" <div id='load' class='loading1'></div>");
			},
			success:function(html){
				$(".right").html(html);
			}
		});
  });
  </script>
soonner вне форума Ответить с цитированием
Старый 19.02.2013, 09:31   #4
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Для этой задачи обычно юзают history, с аналогами со стороны сервера. В этом случае данные "сохранятся" не только при перезагрузке, но и при перекидывании ссылке френду.
Alar, верни репу!
Naive вне форума Ответить с цитированием
Старый 02.06.2022, 15:24   #5
Fortoo
Новичок
Джуниор
 
Регистрация: 02.06.2022
Сообщений: 2
По умолчанию

А зачем второй .ajax вызывать?

Разве нельзя было так

Код:
<script>
  $(document).ready(function(){
	$('.ajaxhref').click(function(e){
	
		e.preventDefault();
		var link = $(this).attr("href");
		localStorage.setItem('current_link',link);
		$("#header-nav A").removeClass("active");
		$(".left A").removeClass("active");
		$(this).addClass("active");
		$.ajax({
			url: link,
			cache:false,
			beforeSend:function(){
				$(".right").html(" <div id='load' class='loading1'></div>");
			},
			success:function(html){
				$(".right").html(html);
			}
		});
		return false;
		
			
	});
	
		$(".right").html(localStorage.getItem('current_link'));

  });
</script>
Т.е после (document).ready в блок .right загружаем содержимое localStorage по ключу current_link.

Последний раз редактировалось Fortoo; 02.06.2022 в 15:26.
Fortoo вне форума Ответить с цитированием
Старый 02.06.2022, 16:14   #6
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

На 9 лет и 4 месяца опоздали
macomics вне форума Ответить с цитированием
Старый 03.06.2022, 21:33   #7
Fortoo
Новичок
Джуниор
 
Регистрация: 02.06.2022
Сообщений: 2
Подмигивание

Цитата:
Сообщение от macomics Посмотреть сообщение
На 9 лет и 4 месяца опоздали
Я видел даты когда писал пост))
Суть поста не ответить человеку, а оставить историю для будущих пользователей
Fortoo вне форума Ответить с цитированием
Старый 03.06.2022, 23:21   #8
Valick
Форумчанин
 
Регистрация: 27.04.2022
Сообщений: 493
По умолчанию

Оставить историю это слишком громко... просто наследил.
Valick вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
сбрасывается фильтр при перезагрузке страницы Mick_20 PHP 5 13.12.2012 18:28
Сохранение данных при переподключении базы Dozent БД в Delphi 13 21.04.2012 21:55
Сохранение данных со страницы в браузере на компьютере! Andersen1313 JavaScript, Ajax 0 23.10.2011 17:01
Сохранение информации при перезагрузке страницы mikhea PHP 1 31.07.2010 16:07
Нашел вирус! Удалял и через антивирисник-бесполезно! При перезагрузке находится снова! MihShev Свободное общение 5 04.05.2008 16:01