Javascript.RU

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

и не пойму ту библиотеку что вы бросили. где она хранит данные в обьекте? там проде бы 2 хранилища. sessionStorage, localStorage
мне это не подходит. в сафари в примат моде оба хранилища не работают. нужно именно в обьекте сервиса все хранить
Ответить с цитированием
  #12 (permalink)  
Старый 26.01.2017, 14:01
Аспирант
Отправить личное сообщение для ExXxTaSy Посмотреть профиль Найти все сообщения от ExXxTaSy
 
Регистрация: 25.07.2012
Сообщений: 32

var localStorage = angular.module('localStorage', []);

localStorage.factory('localStorageService', function() {
    var storageSupportedService;

    function isLocalStorageSupported() {
        var testKey = 'key', storage = window.localStorage;
        try {
            storage.setItem(testKey, '1');
            storage.removeItem(testKey);
            return localStorageName in window && window[localStorageName];
        } catch (e) {
            // return false;
            if (e == QUOTA_EXCEEDED_ERR) {
                //do obj storage

            }
        }
    }

    return storageSupportedService;
});

this.storageData = function () {

    module.exports = {
        name: 'memoryStorage',
        read: read,
        write: write,
        each: each,
        remove: remove,
        clearAll: clearAll
    };

    var memoryStorage = {};

    function read(key) {
        return memoryStorage[key]
    }

    function write(key, data) {
        memoryStorage[key] = data
    }

    function each(callback) {
        for (var key in memoryStorage) {
            if (memoryStorage.hasOwnProperty(key)) {
                callback(memoryStorage[key], key)
            }
        }
    }

    function remove(key) {
        delete memoryStorage[key]
    }

    function clearAll(key) {
        memoryStorage = {}
    }

};


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

вопрос решил так:
var fakeLocalStorage = function() {
        var fakeLocalStorage = {},
            storage;
         
        // If Storage exists we modify it to write to our fakeLocalStorage object instead.
        // If Storage does not exist we create an empty object.
        if (window.Storage && window.localStorage) {
            storage = window.Storage.prototype;
        } else {
            // We don't bother implementing a fake Storage object
            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(fakeLocalStorage)[i];
            return typeof key === 'string' ? key : null;
        };

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

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

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

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

    //
    if (typeof window.localStorage === 'object') {
        try {
            localStorage.setItem('localStorageTest', 1);
            localStorage.removeItem('localStorageTest');
        } catch (e) {
            fakeLocalStorage();
        }
    } else {
        // Use fake localStorage for any browser that does not support it.
        fakeLocalStorage();
    }
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
LocalStorage удаление данных neon_tmn Общие вопросы Javascript 8 21.10.2016 15:22
Вакансия "Старший специалист по развитию HP Service Manager" Kseniya_Stolyarova Работа 3 01.10.2015 19:13
jQuery навигация, утечка памяти Foxeh AJAX и COMET 8 19.04.2015 16:53
Не сохраняется localStorage после перезагрузки браузера Бобр Firefox/Mozilla 1 20.10.2011 20:31
Почему в FF не исполняется клонированный тэг script? NT Man Firefox/Mozilla 0 15.11.2009 16:00