<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    積少成多

    垃圾堆

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      29 Posts :: 1 Stories :: 5 Comments :: 0 Trackbacks
    項目中,瀏覽器和服務器之間長時間沒有交互,會被超時,但是用戶只有在下次嘗試連接的時候才會知道已經超時了。總結了一下當前這個項目針對這個問題是怎么做的。
    在即將超時的時候,提醒用戶,之后通過ajax 發送空消息給服務器以防止服務器將session無效。
    下面是核心的代碼:

    var previousSmSession = null;
    var times = 0;
    var timer = setInterval("checkSmSession()"60 * 3000);
    var maxTimes = 9;

    function checkSmSession()
    {
        
    var currentSmSession = getCurrSmSession();
        
    if (currentSmSession != previousSmSession) {
            previousSmSession 
    = currentSmSession;
            times 
    = 0;
        } 
    else {
            times
    ++;
            
    if (maxTimes == times) {
                    
    this.focus();
                    
    var currentCheckingTime = new Date();
                    currentCheckingTime.setTime(currentCheckingTime.getTime() 
    + 60 * 3000);
                    
    var sessionWarningMsg = "Due to inactivity you will be logged out of the system at " + currentCheckingTime.toLocaleString().replace(/^.*?\d{4/,""+ ". To extend your session click OK."
                    
    var val = confirm(sessionWarningMsg);
                    
    if (val) {
                            times 
    = 0;
                            refreshSessions();
                     } 
    else {
                          
    //  self.location = "/wps/logout.jsp"; 
                    }
            }
        }
    }


    function getCurrSmSession() {
        
    var allCookies = document.cookie.split(";");
        
        
    var aCookie = null;
        
    var aCookieName = "";
        
    var aCookieValue = "";         
        
    for (var i=0; i<allCookies.length; i++)    {
            aCookie 
    = allCookies[i].split("=");
            aCookieName 
    = aCookie[0].replace(/^\s+|\s+$/g, "");
            
    if (smSessionName == aCookieName) {
                
    if (aCookie.length > 1) {
                    aCookieValue 
    = unescape(aCookie[1].replace(/^\s+|\s+$/g, ""));
                }
                
    break;
            }
        }
        
    if (i == allCookies.length) {
            aCookieValue 
    = null;
        }
        
    return aCookieValue;
    }

    function refreshSessions () {
        
    var dummyUrls = ["/home/FlexKeepAlive.jsp""/cfi/FlexKeepAlive.jsp"];
        
    for (var i=0; i<dummyUrls.length; i++) {
            
    var aXmlHttp = getXMLHttpObject();
            
    if (null == aXmlHttp) {
                alert(
    "AJAX does not work!");
                
    break;    
            }
            aXmlHttp.open(
    "GET", dummyUrls[i]+"?sid="+Math.random(), true);
            aXmlHttp.send(
    null);
        }     
    }

    function getXMLHttpObject () {
        
    var xmlHttpObj = null;
        
        
    try {
            xmlHttpObj 
    = new XMLHttpRequest();// Firefox    
        } catch (e) {
            
    try {
                xmlHttpObj 
    = new ActiveXObject("Msxml2.XMLHTTP");    //IE
            } catch (e) {
                xmlHttpObj 
    = new ActiveXObject("Microsoft.XMLHTTP");
            }
        }
        
        
    return xmlHttpObj;
    }
    posted on 2011-06-28 16:22 思無 閱讀(351) 評論(0)  編輯  收藏 所屬分類: WEB
    主站蜘蛛池模板: 学生妹亚洲一区二区| 亚洲伦另类中文字幕| 久久成人免费播放网站| 国内精品久久久久影院亚洲| 亚洲国产精品自产在线播放| 成人免费黄色网址| 国产综合免费精品久久久| 色偷偷噜噜噜亚洲男人| 综合自拍亚洲综合图不卡区| 亚洲香蕉成人AV网站在线观看 | 18勿入网站免费永久| 国产在线观看免费av站| 亚洲а∨精品天堂在线| 亚洲成人黄色在线| 亚洲精品私拍国产福利在线| 久久久久亚洲?V成人无码| 亚洲成年看片在线观看| 亚洲AV无码成H人在线观看| 成人毛片免费观看视频大全| 亚洲an日韩专区在线| 亚洲国产一区在线| 666精品国产精品亚洲| 亚洲日产2021三区在线| 亚洲乱码在线播放| 亚洲影院天堂中文av色| 毛片亚洲AV无码精品国产午夜| 精品国产日韩亚洲一区在线| 免费人成大片在线观看播放电影| 色网站在线免费观看| 精品国产污污免费网站入口| 色欲国产麻豆一精品一AV一免费| 日本一区二区免费看| 夜夜嘿视频免费看| 久久久久久亚洲精品不卡| 亚洲综合网美国十次| 国产精品亚洲专一区二区三区| 国产黄在线播放免费观看| 6080午夜一级毛片免费看| 免费涩涩在线视频网| 亚洲AV成人一区二区三区AV| 2019亚洲午夜无码天堂|