站內搜尋:Yahoo搜尋如果沒有給完整的網址,請在站內再搜尋一次!

2013-10-10

如何讓classic ASP程式的Session不受IIS的主機預設Timeout時間限制,維持所開啟ASP程式的可用狀態

以下範例程式執行後,會建立一個Session("LoginOK"),並將頁面轉址到,另一個程式NeverTimeout2.asp
<%
  session("LoginOK") = "OK"
  response.redirect "NeverTimeout2.asp"
%>

NeverTimeout2.asp,程式內容如下。
  • NeverTimeout2.asp繼續往下執行的條件是:Session("LoginOK")=OK
  • 讓NeverTimeout2.asp程式開啟後,一值保持在可用狀態的作法,如下:
    1. 在頁面中建立一個iFrame,將iFrame所要顯示的內容,指向另一個網頁;並將這個iFrame設定為不顯示,以免影響網頁內容的顯示。
    2. 開啟NeverTimeout2.asp後,使用JavaScript的setInterval(執行的內容, 間隔的時間),讓這個頁面每若干毫秒後,就重新更新一次iFrame的內容。
    3. 重新載入更新iFrame的作法:
      document.frames["iFrame的名稱"].location.reload();
<%
    if session("LoginOK") <> "OK" then
        response.write "Session Time!!!"
        response.end
    end if
    response.write request("text01")
%>
<html>
<head>
</head>
<script language=javascript>
    window.setInterval("reloadIFrame();", 60000);

    function reloadIFrame() {
       document.frames["ifContent"].location.reload();
    }
</script>
<body >
     <div>
         <iframe src="iFramePage.asp" id="ifContent" style="display:none;" >
         </iframe>
     </div>
     <form method=get name=form01 action=NeverTimeout2.asp >
         <input type=text id=text01 name=text01 >
         <input type=submit name=Send value=send>
     </form>
</body>
</html>


iFrame的應用是不是很妙?如果不方便使用XMLHttpRequest的進行ajax非同步存取,用iFrame加上JavaScript,來模擬一下ajax的效果,應該也會有不錯的效果。

沒有留言:

張貼留言