Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 11.05.2012, 04:30
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Сообщение от devote
дык может не != а все же ==
не?
вы правы
Ответить с цитированием
  #12 (permalink)  
Старый 11.05.2012, 04:34
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

Сообщение от devote
дык может не != а все же ==
не?
Пофиг, главное мысль понятна
__________________
"Matreshka is fucking awesome" © чувак с Reddit
Matreshka.js - Три возможности
Ответить с цитированием
  #13 (permalink)  
Старый 29.05.2012, 22:29
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

var Storage = function Storage ( name, duration ) {
	this._name = name || this._name;
	this._duration  = duration || this._duration;
	this._init();
}

Storage.prototype = {
	_name: '_nameOfYourSrorage',
	_duration: 5000,
	// type == local || session
	_save: function( type ) {
		window[ type + 'Storage' ].setItem( this._name, JSON.stringify( this[ type ] ) );
	},
	
	_get: function( type ) {
		this[ type ] = JSON.parse( window[ type + 'Storage' ].getItem( this._name ) ) || {};
	},
	 
	_init: function() {
		var self = this;
		self._get( 'local' );
		self._get( 'session' );
		
		( function callee() {
			setTimeout( function() {
				self._save( 'local' );
				callee();
			}, self._duration );
		})();
		
		window.addEventListener( 'beforeunload', function() {
			self._save( 'local' );
			self._save( 'session' );
		} );
	},
	
	local: {},
	session: {}
};
Вот самый адекватный и производительный вариант использования хранилища, как объекта. Взял из своего проекта, может быть кому-то будет полезным.
var storage = new Storage;
storage.local = {a:4, b: {c:5}};
storage.session = {a:7, b: {c:8}};
b = storage.local.b;
b.c = {d:6};

Стоит объяснять что к чему?
__________________
"Matreshka is fucking awesome" © чувак с Reddit
Matreshka.js - Три возможности

Последний раз редактировалось FINoM, 31.05.2012 в 18:10.
Ответить с цитированием
  #14 (permalink)  
Старый 29.05.2012, 22:36
Аватар для Раед
''
Отправить личное сообщение для Раед Посмотреть профиль Найти все сообщения от Раед
 
Регистрация: 11.12.2011
Сообщений: 636

FINoM,
Гениально! Просто, удобно (никакой асинхронности). Спасибо
Ответить с цитированием
  #15 (permalink)  
Старый 29.05.2012, 22:38
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

FINoM, видел ваш пост на хабре.

жаль, что вы про IE забыли там ведь чуточку сложнее, и все по-другому. но использование одинаковое.
Ответить с цитированием
  #16 (permalink)  
Старый 29.05.2012, 22:39
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

Сообщение от Раед
(никакой асинхронности)
Вон Гвоздь показал, как убрать асинхронность. Но решение всё равно осталось очень тяжелым и неудобным.
А этот вариант на хабре предложили, моя заслуга здесь только в нескольких строках кода.
__________________
"Matreshka is fucking awesome" © чувак с Reddit
Matreshka.js - Три возможности
Ответить с цитированием
  #17 (permalink)  
Старый 29.05.2012, 22:40
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

Сообщение от melky
жаль, что вы про IE забыли
В посте? Не стоит его воспринимать всерьез. Решение плохое.
__________________
"Matreshka is fucking awesome" © чувак с Reddit
Matreshka.js - Три возможности
Ответить с цитированием
  #18 (permalink)  
Старый 29.05.2012, 22:51
Аватар для Раед
''
Отправить личное сообщение для Раед Посмотреть профиль Найти все сообщения от Раед
 
Регистрация: 11.12.2011
Сообщений: 636

Сообщение от FINoM
Не стоит его воспринимать всерьез. Решение плохое.
Почему?
Ответить с цитированием
  #19 (permalink)  
Старый 29.05.2012, 23:06
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

Сообщение от Раед
Почему?
При любом запросе чего-либо из хранилища, происходит стрингификация объекта и сохранение в localStorage.
objectLocalStorage.a ← вызовет эту сложную операцию.
Кроме этого,
objectLocalStorage.a.b = 5; // сработает
a = objectLocalStorage.a;
a.b = 5; // не сработает
__________________
"Matreshka is fucking awesome" © чувак с Reddit
Matreshka.js - Три возможности
Ответить с цитированием
  #20 (permalink)  
Старый 29.05.2012, 23:13
Аватар для Раед
''
Отправить личное сообщение для Раед Посмотреть профиль Найти все сообщения от Раед
 
Регистрация: 11.12.2011
Сообщений: 636

FINoM,
Мы с вами кажется про разные посты говорим. Я про этот, а вы про этот
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Открытие div блока при первом визите на сайт Nushaba Общие вопросы Javascript 28 20.12.2013 21:24
Работа с табличными данными, как? Spelesto Общие вопросы Javascript 31 14.12.2010 20:56
Работа с объектом MadGest Общие вопросы Javascript 3 21.09.2010 14:28
Работа с объектом style (CSSStyleDeclaration) Skipp Events/DOM/Window 10 22.05.2010 11:49
Как правильно послать XML в POST запросе LowCoder AJAX и COMET 10 15.07.2009 23:20