cache.js 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. // 缓存前缀
  2. var postfix = 'yuncache';
  3. /**
  4. * 设置缓存
  5. *
  6. * @param {[type]} k [键名]
  7. * @param {[type]} v [键值]
  8. * @param {[type]} t [时间、单位秒]
  9. */
  10. function put(k, v, t) {
  11. uni.setStorageSync(k, v)
  12. var seconds = parseInt(t);
  13. if (seconds > 0) {
  14. var timestamp = Date.parse(new Date());
  15. timestamp = timestamp / 1000 + seconds;
  16. uni.setStorageSync(k + postfix, timestamp + "")
  17. } else {
  18. uni.removeStorageSync(k + postfix)
  19. }
  20. }
  21. /**
  22. * 获取缓存
  23. *
  24. * @param {[type]} k [键名]
  25. * @param {[type]} def [获取为空时默认]
  26. */
  27. function get(k, def) {
  28. var deadtime = parseInt(uni.getStorageSync(k + postfix))
  29. if (deadtime) {
  30. if (parseInt(deadtime) < Date.parse(new Date()) / 1000) {
  31. if (def) {
  32. return def;
  33. } else {
  34. return false;
  35. }
  36. }
  37. }
  38. var res = uni.getStorageSync(k);
  39. if (res) {
  40. return res;
  41. } else {
  42. if (def == undefined || def == "") {
  43. def = false;
  44. }
  45. return def;
  46. }
  47. }
  48. /**
  49. * 清理指定缓存
  50. *
  51. * @return {[type]} [description]
  52. */
  53. function remove(k) {
  54. uni.removeStorageSync(k);
  55. uni.removeStorageSync(k + postfix);
  56. }
  57. /**
  58. * 清理所有缓存
  59. *
  60. * @return {[type]} [description]
  61. */
  62. function clear() {
  63. uni.clearStorageSync();
  64. }
  65. export default {
  66. put,
  67. get,
  68. remove,
  69. clear,
  70. }