Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как сохранить кеш в JavaScript (https://javascript.ru/forum/misc/1444-kak-sokhranit-kesh-v-javascript.html)

Jumong 18.07.2008 22:25

Как сохранить кеш в JavaScript
 
Вложений: 1
Помогите, пожалуйста !
Я совсем не знаю JavaScript Но мне нужна ваша помощ

Как сделать так что бы после сворачивание блока кеш блока сохранился !

Точнее после обновление страницы блок был закрытом ! Сейчас если я закрываю блок и обновление страницы блок заново открывается !
Вложение 23

А вот это пример где все правильно работает !
_http://forum.bukhara.uz

Заранее огромное спасибо ;)

(Я дизайнер в долгу не останусь )

Snipe 19.07.2008 07:14

Если я правильно понимаю, чтоб подобные данные сохранились после перезагрузки страницы можно использовать:
1. Куки
2. незаметную отправку AJAX-запросов на сервер (прокатит только у зарегистрированных пользователей)
3. Использовать специальные библиотеки (например http://browserpersistence.ru/), которые могут хранить данные на стороне клиента не в куках.

На приведенном Вами примере используются куки (если их удалить, то все свернутые блоки развернуться).

Какие еще кто знает методы?

Про куки тут можете почитать:
http://www.codenet.ru/webmast/js/Cookies.php

Jumong 19.07.2008 08:43

Я почитал все что вы дали но че ту меня не получается :mad:
Помогите мне пожалуйста в долгу не останусь :rolleyes:

Snipe 20.07.2008 16:31

На загрузку страницы нужно прикрутить getCookie, в вашем примере я сделал так (в FF3 прокатило):
<script language="JavaScript" type="text/javascript" src="menu.js"></script>
<table width="200" border="0">
<tr><td class="module-title"><b>Новости</b></td>
<td  id="cont" onclick="SwitchMenu('news');SwitchMenu('news1');SwitchMenu('news2');" style="cursor:pointer;"  nowrap="nowrap" valign="top">
<div id="news1" style="display:none;"><img src="http://javascript.ru/forum/images/plus.gif" align="right" valign="top"></div>
<div id="news2" style="display:block;"><img src="http://javascript.ru/forum/images/minus.gif" align="right" valign="top"></div>
</td></tr>
<tr><td colspan="2"><div id="news" style="display:block;">
1. Косметолога Оксаны Пушкиной осудили условно<br>
2. «Аэроэкспресс» выплатит компенсацию пассажирам, опоздавшим на самолеты<br>
3. Начала обещанного отдыха в Турции российские дети ждали три дня<br>
4. Медведев поздравил Нельсона Манделу с 90-летием<br>
5. Армия Приднестровья готова помочь Абхазии
</div></td></tr></table>
<script type="text/javascript">
getCookie('news');
</script>


Сам код:
function SwitchMenu(obj) {
	if (document.getElementById) {
		var el = document.getElementById(obj);
		var ar = document.getElementById("cont").getElementsByTagName("td");
		if (el.style.display == "none") {
			for (var i=0; i<ar.length; i++) {
				ar[i].style.display = "none";
			}
			el.style.display = "block";
			setCookie('news', 'false');
		} else {
			el.style.display = "none";
			setCookie('news', 'true');
		}
		
	}
}

var TIME = 3*24*60*60*1000; //3 дня
function setCookie (name, value) {
	var time = new Date();
	time.setTime(Date.parse(time) + TIME);
	document.cookie = name + '=' + value + '; expires=' + time;
}

function getCookie(name) {
	if (document.cookie.search(name + '=true') != -1) {
		SwitchMenu('news');
		SwitchMenu('news1');
		SwitchMenu('news2');
	}
}

Вроде работает. ;)
Украшательствами заниматься не стал...

Jumong 20.07.2008 20:29

Оооооо огромное тебе спасибо ! Все работает как надо :)


Часовой пояс GMT +3, время: 20:34.