storage.js 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. import devCache from "../libs/devCache";
  2. export default {
  3. /**
  4. * 挂载缓存监听
  5. */
  6. install() {
  7. try {
  8. // #ifdef MP
  9. let that = this;
  10. let _setStorage = uni.setStorage;
  11. uni.setStorage = setStorage;
  12. function setStorage() {
  13. try {
  14. if (
  15. arguments[0]
  16. && arguments[0].key
  17. && arguments[0].key.indexOf("devTools_") != 0
  18. ) {
  19. that.addCacheKey(arguments[0].key)
  20. }
  21. } catch (error) { }
  22. return _setStorage(...arguments)
  23. }
  24. let _setStorageSync = uni.setStorageSync;
  25. uni.setStorageSync = setStorageSync;
  26. function setStorageSync() {
  27. try {
  28. if (
  29. arguments[0]
  30. && arguments[0].indexOf("devTools_") != 0
  31. ) {
  32. that.addCacheKey(arguments[0])
  33. }
  34. } catch (error) { }
  35. return _setStorageSync(...arguments)
  36. }
  37. let _removeStorage = uni.removeStorage;
  38. uni.removeStorage = removeStorage;
  39. function removeStorage() {
  40. try {
  41. if (
  42. arguments[0]
  43. && arguments[0].key
  44. && arguments[0].key.indexOf("devTools_") != 0
  45. ) {
  46. that.delCacheKey(arguments[0].key)
  47. }
  48. } catch (error) { }
  49. return _removeStorage(...arguments)
  50. }
  51. let _removeStorageSync = uni.removeStorageSync;
  52. uni.removeStorageSync = removeStorageSync;
  53. function removeStorageSync() {
  54. try {
  55. if (
  56. arguments[0]
  57. && arguments[0].indexOf("devTools_") != 0
  58. ) {
  59. that.delCacheKey(arguments[0])
  60. }
  61. } catch (error) { }
  62. return _removeStorageSync(...arguments)
  63. }
  64. // #endif
  65. } catch (error) {
  66. console.log("devTools storage.install error", error);
  67. }
  68. },
  69. /**
  70. * 添加缓存key
  71. */
  72. addCacheKey(key) {
  73. try {
  74. if (key && typeof key == "string") {
  75. let storageList = devCache.get("storage")
  76. if (!storageList) storageList = [];
  77. if (storageList.indexOf(key) == -1) {
  78. storageList.push(key)
  79. devCache.set("storage", storageList)
  80. }
  81. }
  82. } catch (error) {
  83. console.log("devTools storage.addCacheKey error", error);
  84. }
  85. },
  86. /**
  87. * 删除指定缓存key
  88. */
  89. delCacheKey(key) {
  90. try {
  91. if (key && typeof key == "string") {
  92. let storageList = devCache.get("storage")
  93. if (!storageList) storageList = [];
  94. let index = storageList.indexOf(key);
  95. if (index > -1) {
  96. storageList.splice(index, 1)
  97. devCache.set("storage", storageList)
  98. }
  99. }
  100. } catch (error) {
  101. console.log("devTools storage.delCacheKey error", error);
  102. }
  103. },
  104. }