监听本地储存变化

 var orignalSetItem = localStorage.setItem;
    localStorage.setItem = function(key, newValue) {
      var setItemEvent = new Event("setItemEvent");
      setItemEvent.key = key;
      setItemEvent.newValue = newValue;
      window.dispatchEvent(setItemEvent);
      orignalSetItem.apply(this, arguments);
    };
    var that = this;

    window.addEventListener("setItemEvent", function(e) {
      if (e.key == "gid") {
        var _this = localStorage.getItem("gid");
        if (_this != e.newValue) {//判断上条数据的gid与当前数据gid是否发生变化
          that.$http({
            url: "/api/message/list",
            data: {
              list_type: "new",
              page_size: 1
            },
            success: result => {
              result.data.list[0].avatar = result.data.list[0].user_avatar||that.getAvatar((Math.abs(crc32.str(result.data.list[0].gid)) % 5) + 1);
              that.newdata = result.data.list[0];
              console.log(that.newdata);
              that.List.push({
                id: ++that.currentId,
                avatar: that.newdata.avatar,
                msg: that.newdata.content,
                time: Math.random() * 2 + 3,
                type: MESSAGE_TYPE.NORMAL,
                create_time: that.newdata.create_time,
                liked: that.newdata.liked,
                gid: that.newdata.gid,
                extraWidth: 650
              });
            }
          });
        }
      }
    });
posted @ 2020-06-17 17:18  我是工具人  阅读(756)  评论(0编辑  收藏  举报