• Почему не правильно работает проверка времени жизни?

    @v-grabko Автор вопроса
    window.Cache = {
        Get: function (name, call, time) {
            var st = this.Storage();
            var data = st.getItem(name);
            if (data != undefined) {
                data = JSON.parse(data);
                var times = parseInt(new Date().getTime() / 1000) - data.time;
                console.info(times);
                console.info(time);
                if (times <= time) { 
                    console.info('cache');
                    return data.data;
                } else {
                    console.info('STcache');
                    st.removeItem(name);
                    var gg = call();
                    st.setItem(name, JSON.stringify({
                        data: JSON.stringify(gg),
                        time: parseInt(new Date().getTime() / 1000)
                    }));
                    return gg;
                }
            } else {
                console.info('NO cache');
                var gg = call();
                st.setItem(name, JSON.stringify({
                    data: JSON.stringify(gg),
                    time: parseInt(new Date().getTime() / 1000)
                }));
                return gg;
            }
        },
        Set: function (name, value) {
            var st = this.Storage();
            st.setItem(name, JSON.stringify({
                data: JSON.stringify(value),
                time: parseInt(new Date().getTime() / 1000)
            }));
        },
        Del: function (name) {
            var st = this.Storage();
            st.removeItem(name);
        },
        Clear: function () {
            var st = this.Storage();
            st.clear();
        },
        /**
         * Создаёт обьект localStorage. Если произошла ошибка емулирует localStorage. 
         * (все данные хранит в озу, пропадают при перегрузке страницы). 
         */
        Storage: function () {
            try {
                return window['localStorage'];
    
            } catch (e) {
                return {
                    storage: {},
                    clear: function () {
                        delete this.storage;
                        this.storage = {};
                    },
                    getItem: function (key) {
                        return this.storage[key];
                    },
                    removeItem: function (key) {
                        return delete this.storage[key];
                    },
                    setItem: function (key, value) {
                        this.storage[key] = value;
                    }
                };
            }
        }
    
    };
    Ответ написан
    Комментировать
  • Какие технологии для разработки web приложения предложите кроме JS+PHP+MySQL?

    @v-grabko
    js+golang+redis | memcache+mysql | PostgreSql
    Ответ написан
    Комментировать
  • Что не так с этим js?

    @v-grabko Автор вопроса
    №;№";;%№%:;№
    возле onclick= необходимо было удалить кавычки
    Ответ написан
    Комментировать
  • Какой самый производительный роутр?

    @v-grabko Автор вопроса
    Ответ написан
    Комментировать