0

我正在使用以下文章使我的会话在我的 asp.net 应用程序中保持活跃。

如何保持会话活跃

但是当我在javascript中使用警报检查会话变量值时,我什么也没找到。alert('<%=Session["Heartbeat"]%>');

实际上在我的网页中没有回发。我所做的所有工作都来自 Jquery Ajax。只有当有任何回发时,该文章的解决方案才有效。但我想保持我的会话没有任何回发。

请各位大侠帮忙。。。。。。

4

2 回答 2

1

alert('<%=Session["Heartbeat"]%>');没有完全回发将无法工作,因为<%=Session["Heartbeat"]%>是服务器端代码。

为了使 Session 保持活动状态,您只需要对服务器进行简单的 Ajax 调用。

实现 ASHX 通用处理程序并通过 Ajax 调用它的最简单方法。例如,

ping.ashx

<%@ WebHandler Language="C#" CodeBehind="Ping.ashx.cs" Class="PROJECT_NAMESPACE.Ping" %>

ping.ashx.cs

public class Ping : IHttpHandler
{ 
   public void ProcessRequest(HttpContext context)
   {
      context.Response.ContentType = "text/plain";
      context.Response.Write("Ping");
   }

   public bool IsReusable { get { return false; }}
}
于 2016-04-27T04:31:30.863 回答
0

请试试这个例子:-

<script language="javascript" type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
<script language="javascript" type="text/javascript">

    function KeepSession() {
    // A request to server
    $.post("http://servername:port/appName/SessionCheck.aspx");

    //now schedule this process to happen in some time interval, in this example its 1 min
    setInterval(KeepSession, 60000);
}

    // First time call of function
    KeepSession(); 
 </script>
于 2016-04-27T04:17:04.017 回答