Просмотр исходного кода

fix: 避免重复发起登录相关的cookie请求

lsc 1 неделя назад
Родитель
Сommit
60166f5cad
1 измененных файлов с 10 добавлено и 3 удалено
  1. 10 3
      js/liyuan/Onload2.js

+ 10 - 3
js/liyuan/Onload2.js

@@ -326,6 +326,7 @@ let LoginState = false
 let CookieS = ''
 let CookieCheckTimes = 0
 let isPanL = false
+let _loginInFlight = false
 U.MD.D.getuser = function () {
     // $("#U_MD_D_BG")[0].style.backgroundImage = 'url("/img/icon/gif/longhuaBg.gif")'
     var userInfo = US.userInfo;
@@ -335,8 +336,10 @@ U.MD.D.getuser = function () {
         LoginState = true
         var _cookie = U.UF.Cookie.get("cocorobo");
         try {
-            if (!panId && _cookie && loginType != 1) {
+            if (!panId && _cookie && loginType != 1 && !_loginInFlight) {
+                _loginInFlight = true;
                 U.A.Request(US.Config.server + "getcookieuserid", [], function (res) {
+                    _loginInFlight = false;     
                     if (res.value && res.value[0] && res.value[0][0]) {
                         var _user = res.value[0][0];
                         U.A.Request(US.Config.edu + "admin/userinfo/userinfoById/" + _user.userid, [], function (res) {
@@ -690,9 +693,11 @@ U.MD.D.getuser = function () {
     }else if(LoginState && !CookieS){
         CookieS = _cookie
         U.UF.Cookie.set("cocoroboLoginType=2");
-    }else if(LoginState && _cookie != CookieS){
+    }else if(LoginState && _cookie != CookieS && !_loginInFlight){
         US.userInfo = {}
+        _loginInFlight = true;
         U.A.Request(US.Config.server + "getcookieuserid", [], function (res) {
+            _loginInFlight = false;         
             if (res.value && res.value[0] && res.value[0][0]) {
                 var _user = res.value[0][0];
                 U.A.Request(US.Config.edu + "admin/userinfo/userinfoById/" + _user.userid, [], function (res) {
@@ -714,11 +719,13 @@ U.MD.D.getuser = function () {
                 window.location.reload();
             }
         }, [], { "type": "GET", "withCredentials": true });
-    }else if(LoginState && _cookie && !isPanL){
+    }else if(LoginState && _cookie && !isPanL && !_loginInFlight){
         CookieCheckTimes++
         if (CookieCheckTimes % 5 !== 0) return;
         isPanL = true
+        _loginInFlight = true;
         U.A.Request(US.Config.server + "getcookieuserid", [], function (res) {
+            _loginInFlight = false;         
             if (res.value && res.value[0] && res.value[0][0]) {
                 isPanL = false
             }else if(res.status && res.status.status != 0){