/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ define(['jquery', 'backbone'], function ($, Backbone) { var Cache = { convertToDate: function (mysql_string) { if (typeof mysql_string === 'string') { var t = mysql_string.split(/[- :]/); //when t[3], t[4] and t[5] are missing they defaults to zero return new Date(t[0], t[1] - 1, t[2], t[3] || 0, t[4] || 0, t[5] || 0); } return null; }, prefix: "cacheItem", get: function (name) { var item = window.localStorage.getItem(this.prefix + name); if(item === null) return null; item = JSON.parse(item); return item.storeValue; }, set: function (name, value) { window.localStorage.setItem(this.prefix + name, JSON.stringify({setTime: new Date(), storeValue: value})); }, isExpired: function (name, timeDiff) { var item = window.localStorage.getItem(this.prefix + name); if(item === null) return true; item = JSON.parse(item); var time = item.setTime; if(timeDiff.getTime() > Date.parse(time)) return true; return false; }, checkCacheFromServer: function () { var self = this; $.ajax({ url: myManifest.Settings.DefaultURL + "/api/profile/statusCache", //dataType: "json", type: 'GET', success: function (msg) { $(msg).each(function (index, element) { var elemName = "Category" + element.ID_CATEGORIA; if (self.isExpired(elemName, self.convertToDate(element.LastDateModified))) { self.set(elemName, null); } }); } }); } }; return Cache; });