Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.01.2017, 16:55
Аспирант
Отправить личное сообщение для ExXxTaSy Посмотреть профиль Найти все сообщения от ExXxTaSy
 
Регистрация: 25.07.2012
Сообщений: 32

хранилище сессий
сделал скрипт записи в "свое" хранилище если не работает локальное. но не могу понять как сделать то же самое для хранилища сессии.
то есть как допилить скрипт что бы и sessionStorage так же записывался.

перепробовал разные варианты и както не получается. все равно записывает в хранилище сессий.

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


var userLocalStorage = function() {
        var userLocalStorage = {},
            storage;
        // If Storage exists we modify it to write to our userLocalStorage object instead.
        // If Storage does not exist we create an empty object.
        if (window.Storage && window.localStorage) {
            storage = window.Storage.prototype;
        } else {
            window.localStorage = {};
            storage = window.localStorage;
        }

        // For older IE
        if (!window.location.origin) {
            window.location.origin = window.location.protocol + "//" + window.location.hostname + (window.location.port ? ':' + window.location.port: '');
        }

        var dispatchStorageEvent = function(key, newValue) {
            var oldValue = (key == null) ? null : storage.getItem(key), // `==` to match both null and undefined
                url = location.href.substr(location.origin.length),
                storageEvent = document.createEvent('StorageEvent'); // For IE

            storageEvent.initStorageEvent('storage', false, false, key, oldValue, newValue, url, null);
            window.dispatchEvent(storageEvent);
        };

        storage.key = function(i) {
            var key = Object.keys(userLocalStorage)[i];
            return typeof key === 'string' ? key : null;
        };

        storage.getItem = function(key) {
            return typeof userLocalStorage[key] === 'string' ? userLocalStorage[key] : null;
        };

        storage.setItem = function(key, value) {
            dispatchStorageEvent(key, value);
            userLocalStorage[key] = String(value);
        };

        storage.removeItem = function(key) {
            dispatchStorageEvent(key, null);
            delete userLocalStorage[key];
        };

        storage.clear = function() {
            dispatchStorageEvent(null, null);
            userLocalStorage = {};
        };
    };

    //check and use
    if (typeof window.localStorage === 'object') {
        try {
            localStorage.setItem('localStorageTest', 1);
            // localStorage.removeItem('localStorageTest');

        } catch (e) {
            //use our fake storage if get error in safari
            userLocalStorage();
        }
    } else {
        // Use fake localStorage for any browser that does not support it.
        userLocalStorage();
    }
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Надёжное хранилище paveltkachev jQuery 3 15.04.2014 19:00
Система хранения сессий Valdemor Общие вопросы Javascript 2 26.07.2013 19:05
Сохранение скрипта в локальное хранилище hell100 Общие вопросы Javascript 3 13.02.2012 23:43
Online хранилище данных DarkGoodWIN Общие вопросы Javascript 1 24.08.2011 00:13
Ищу плагин автоподбора с добавлением выбранных элементов в хранилище? bobroff jQuery 3 30.11.2009 18:07