HTML 5 sessionStorageセッションストレージでは、ページが30分も操作されない自動プロンプトと終了を実現

2248 ワード

1つ目の方法
私たちのソフトウェアは政府業界のソフトウェアとドッキングして、30分も操作しないと思って、自動的にページを空にしてヒントを与えた後、操作を再開して、最初はプロジェクトのキャッシュで解決しようと思っていましたが、長い間試してみましたが、casの単点の原因で、ずっとログイン状態をクリアした後、またログインして、仕方がありません.キャッシュがいつ満期になるか(自分の技術が足りない)が分からないためrequestをクリアできません.getUserPrincipal();まさに柳暗花明、H 5のセッションストーリーを何気なく発見
HTML 5セッションストレージ
//  H5 sessionStorage,         js,   jquery
var _EXPIRE_TIME = 2*60*1000;//       ,   
var _interval_handler=-1;
(function () {
    if (isLogin()) {//   
       //        
       sessionStorage.setItem("nxgx_lastVisitTime", new Date().getTime());
       _interval_handler=setInterval(checkExpired, 10*1000);//10      ,    
      }
})();

function checkExpired() {
   console.log("10         "+window.location.href+"::"+new Date());
   var storeLastTime=sessionStorage.getItem("nxgx_lastVisitTime")?sessionStorage.getItem("nxgx_lastVisitTime"):-1;
   if (storeLastTime==-1) clearInterval(_interval_handler);
   else {
        if ((new Date()).getTime()-storeLastTime>_EXPIRE_TIME) {  //   
          
          alert("           ,           ");
          exit('pc');
          //  sessionStorage  
          //sessionStorage.clear();
          //          ,         
          document.location.reload();//      
          //    
          clearInterval(_interval_handler);
     }
  }
}

プロジェクト共通のjsに配置して問題を完璧に解決しました
 
第2の方法はマウスの移動を監視する
Webページ自動タイムアウト自動終了方法
構想:mouseoverイベントを使用してユーザー操作ページがあるかどうかを監視し、タイマー間隔を書いて特定の時間にわたって長い間ページを操作していないかどうかを検出し、もしそうであれば、終了する.具体的な時間コードは以下の通りである(js):
mouseover
        var lastTime = new Date().getTime();
        var currentTime = new Date().getTime();
        var timeOut = 10 * 60 * 1000; //      : 10 

        $(function(){
            /*        */
            $(document).mouseover(function(){
                lastTime = new Date().getTime(); //      

            });
        });

        function testTime(){
            currentTime = new Date().getTime(); //      
            if(currentTime - lastTime > timeOut){ //      
                console.log("  ");
            }
        }

        /*        1               */
        window.setInterval(testTime, 1000);