解决项目中多个页面重复访问同一接口的问题

多个页面进入时都要访问queryAll接口,接口返回数据量大,查找方法解决问题

在项目首先加载页面index.html中

<script>
    if (!sessionStorage.getItem('sessionValue')) {
      //判断是否请求过queryAll
      $.ajax({
     
        url: '*******queryAll',
        type: 'GET',
        async: false,
        success: function (res) {
     
          window.configuration = res.result;
          let obj = res.result;
          obj = JSON.stringify(obj); //先序列化
          sessionStorage.setItem("sessionValue", obj);
          localStorage.setItem("updateSession", obj);
        },
        error: function (err) {
     
          throw err;
        },
      });
    }
    if (!sessionStorage.getItem("sessionValue")) {
      //在新打开的tab中,检查session的值是否存在,若不存在,则执行
      localStorage.setItem("getSession", Date.now());
    }
    window.addEventListener("storage", function (event) {
     
      if (!event.newValue) {
     
        return;
      }
      if (event.key == "getSession") {
     
        localStorage.setItem("storeSessionData", sessionStorage.getItem("sessionValue"));
        localStorage.removeItem("storeSessionData");
      }
      if (event.key == "storeSessionData") {
     
        sessionStorage.setItem("sessionValue", event.newValue);
        localStorage.removeItem("getSession");
      }
      if (event.key == "updateSession") {
     
        sessionStorage.setItem("sessionValue", event.newValue);
        localStorage.removeItem("updateSession");
      }
    });
    window.customLoginCompanyName = '';
  </script>

你可能感兴趣的:(react,reactjs)