storage.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. /**
  2. * desc: 本地存储
  3. * author: wangyang
  4. * date: 2015-04-11
  5. */
  6. define(function() {
  7. return {
  8. setItem: function(key, value) {
  9. if (!window.localStorage) {
  10. return;
  11. }
  12. window.localStorage.setItem(key, JSON.stringify(value));
  13. window.localStorage.setItem(key + '-time', parseInt(new Date().getTime() / 1000));
  14. },
  15. getItem: function(key, reset_time) {
  16. if (!window.localStorage) {
  17. return null;
  18. }
  19. var t = window.localStorage.getItem(key);
  20. if (t !== null && typeof reset_time === 'number') {
  21. var c_time = parseInt(new Date().getTime() / 1000);
  22. var cache_time = window.localStorage.getItem(key + '-time');
  23. cache_time = !cache_time ? 0 : parseInt(cache_time);
  24. if (c_time - cache_time > reset_time) {
  25. t = null;
  26. this.removeItem(key);
  27. this.removeItem(key + '-time');
  28. }
  29. }
  30. if (t === null) {
  31. return t;
  32. } else {
  33. return JSON.parse(t);
  34. }
  35. },
  36. removeItem: function(key) {
  37. if (!window.localStorage) {
  38. return;
  39. }
  40. window.localStorage.removeItem(key);
  41. window.localStorage.removeItem(key + '-time');
  42. },
  43. clear: function() {
  44. if (!window.localStorage) {
  45. return;
  46. }
  47. window.localStorage.clear();
  48. }
  49. };
  50. })