comparison js/modules/cache.js @ 75:312d4af344c2

Fixed cache.js for iPad.
author Atul Varma <avarma@mozilla.com>
date Sun, 25 Apr 2010 19:31:19 -0700
parents 55c1b3647357
children 4bb45ff5788a
comparison
equal deleted inserted replaced
74:1a0a3abbba93 75:312d4af344c2
1 Require.modules["cache"] = function(exports, require) { 1 Require.modules["cache"] = function(exports, require) {
2 var window = require("window"); 2 var window = require("window");
3 var cache; 3 var cache = window.localStorage.getItem("cache");
4 4
5 if (window.localStorage["cache"]) { 5 if (cache)
6 cache = JSON.parse(window.localStorage["cache"]); 6 cache = JSON.parse(cache);
7 } else 7 else
8 cache = {}; 8 cache = {};
9 9
10 exports.set = function set(key, value) { 10 exports.set = function set(key, value) {
11 cache[key] = value; 11 cache[key] = value;
12 window.localStorage["cache"] = JSON.stringify(cache); 12
13 // Remove the key first, to get around a strange iPad
14 // issue: http://stackoverflow.com/questions/2603682/is-anyone-else-receiving-a-quota-exceeded-err-on-their-ipad-when-accessing-locals
15 window.localStorage.removeItem("cache");
16
17 // TODO: We should really catch QUOTA_EXCEEDED_ERR here,
18 // which could be thrown if the user is in private
19 // browsing mode.
20 window.localStorage.setItem("cache", JSON.stringify(cache));
13 }; 21 };
14 exports.get = function get(key) { 22 exports.get = function get(key) {
15 return cache[key]; 23 return cache[key];
16 }; 24 };
17 }; 25 };