[关闭]
@Wangww0925 2019-08-07T07:55:04.000000Z 字数 1378 阅读 175

localStorage

js-存储


localStorage(长期存储) :与 sessionStorage 一样,但是浏览器关闭后,数据依然会一直存在


封装localStorage

  1. /**
  2. * 保存数据到本地
  3. * 参数
  4. name localStorage的名称
  5. data 存储数据
  6. isTrue true-同页面可以监听,false-同页面无法监听
  7. */
  8. function setLocalStorage(name,data,isTrue){
  9. if(isTrue){
  10. var orignalSetItem = window.localStorage.setItem;
  11. window.localStorage.setItem = function(key,newValue){
  12. var setItemEvent = new Event("setItemEvent");
  13. setItemEvent.newValue = newValue;
  14. setItemEvent.key = key;
  15. window.dispatchEvent(setItemEvent);
  16. orignalSetItem.apply(this,arguments);
  17. }
  18. }
  19. window.localStorage.setItem(name, data);
  20. }
  21. /**
  22. * 从本地存储获取数据
  23. * 参数
  24. name localStorage的名称
  25. */
  26. function getLocalStorage(name){
  27. return localStorage.getItem(name)
  28. }
  29. /**
  30. * 本地存储中删除某个保存的数据
  31. * 参数
  32. name localStorage的名称
  33. */
  34. function delLocalStorage(name){
  35. window.localStorage.removeItem(name);
  36. }
  37. // 清空localStorage
  38. function clearLocalStorage(){
  39. window.localStorage.clear();
  40. }
  41. /**
  42. * 监听localStorage的变化
  43. * 参数
  44. callback 回调
  45. isTrue true-监听当前页面,false-监听其他页面
  46. */
  47. function listenLocalStorage(callback,isTrue){
  48. if(isTrue){
  49. window.addEventListener("setItemEvent", function (e) {
  50. // console.log(e);
  51. // console.log('key', e.key);
  52. // console.log('oldValue', e.oldValue);
  53. // console.log('newValue', e.newValue);
  54. // console.log('url', e.url);
  55. callback(e)
  56. });
  57. }else{
  58. window.addEventListener("storage", function (e) {
  59. // console.log('key', e.key);
  60. // console.log('oldValue', e.oldValue);
  61. // console.log('newValue', e.newValue);
  62. // console.log('url', e.url);
  63. callback(e)
  64. })
  65. }
  66. }

作者 wendy
2019 年 5月 23日


参考文献

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注