Mercurial > bugzilla-dashboard
changeset 75:312d4af344c2
Fixed cache.js for iPad.
author | Atul Varma <avarma@mozilla.com> |
---|---|
date | Sun, 25 Apr 2010 19:31:19 -0700 |
parents | 1a0a3abbba93 |
children | ea27d04a6522 |
files | js/modules/cache.js |
diffstat | 1 files changed, 13 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/js/modules/cache.js Sun Apr 25 18:58:56 2010 -0700 +++ b/js/modules/cache.js Sun Apr 25 19:31:19 2010 -0700 @@ -1,15 +1,23 @@ Require.modules["cache"] = function(exports, require) { var window = require("window"); - var cache; + var cache = window.localStorage.getItem("cache"); - if (window.localStorage["cache"]) { - cache = JSON.parse(window.localStorage["cache"]); - } else + if (cache) + cache = JSON.parse(cache); + else cache = {}; exports.set = function set(key, value) { cache[key] = value; - window.localStorage["cache"] = JSON.stringify(cache); + + // Remove the key first, to get around a strange iPad + // issue: http://stackoverflow.com/questions/2603682/is-anyone-else-receiving-a-quota-exceeded-err-on-their-ipad-when-accessing-locals + window.localStorage.removeItem("cache"); + + // TODO: We should really catch QUOTA_EXCEEDED_ERR here, + // which could be thrown if the user is in private + // browsing mode. + window.localStorage.setItem("cache", JSON.stringify(cache)); }; exports.get = function get(key) { return cache[key];