<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 思無 閱讀(345) 評論(0)  編輯  收藏 所屬分類: WEB
    主站蜘蛛池模板: 免费播放春色aⅴ视频| 亚洲av日韩综合一区二区三区| 精品久久久久久久免费加勒比| 久久国产精品国产自线拍免费| 黄网站色视频免费看无下截| 亚洲一区二区三区久久久久| 亚洲国产精品一区第二页| 成人伊人亚洲人综合网站222| 一二三四免费观看在线视频中文版| a级毛片免费完整视频| 一级毛片免费不卡直观看| 亚洲av无码兔费综合| 亚洲va久久久久| 亚洲av无码一区二区三区天堂古代 | 亚洲国产成人片在线观看| 亚洲不卡AV影片在线播放| 欧洲美熟女乱又伦免费视频| 免费福利网站在线观看| 1区2区3区产品乱码免费| 无码少妇精品一区二区免费动态| 成人A毛片免费观看网站| 国产黄色片免费看| 一级大黄美女免费播放| 五月天婷婷免费视频| 最好2018中文免费视频| 亚洲欧美在线x视频| 亚洲国产综合AV在线观看| 中文有码亚洲制服av片| 亚洲一区二区无码偷拍| 亚洲熟女综合一区二区三区| 亚洲精品二三区伊人久久| 天天爽亚洲中文字幕| 亚洲综合成人婷婷五月网址| 亚洲午夜无码毛片av久久京东热 | 四虎最新永久免费视频| 免费精品国产自产拍在| 成年女人免费视频播放77777| 最近中文字幕无吗免费高清| 成人黄页网站免费观看大全| 免费看美女让人桶尿口| 可以免费观看一级毛片黄a|