我正在使用以下文章使我的会话在我的 asp.net 应用程序中保持活跃。
但是当我在javascript中使用警报检查会话变量值时,我什么也没找到。alert('<%=Session["Heartbeat"]%>');
实际上在我的网页中没有回发。我所做的所有工作都来自 Jquery Ajax。只有当有任何回发时,该文章的解决方案才有效。但我想保持我的会话没有任何回发。
请各位大侠帮忙。。。。。。
我正在使用以下文章使我的会话在我的 asp.net 应用程序中保持活跃。
但是当我在javascript中使用警报检查会话变量值时,我什么也没找到。alert('<%=Session["Heartbeat"]%>');
实际上在我的网页中没有回发。我所做的所有工作都来自 Jquery Ajax。只有当有任何回发时,该文章的解决方案才有效。但我想保持我的会话没有任何回发。
请各位大侠帮忙。。。。。。
alert('<%=Session["Heartbeat"]%>');
没有完全回发将无法工作,因为<%=Session["Heartbeat"]%>
是服务器端代码。
为了使 Session 保持活动状态,您只需要对服务器进行简单的 Ajax 调用。
实现 ASHX 通用处理程序并通过 Ajax 调用它的最简单方法。例如,
<%@ WebHandler Language="C#" CodeBehind="Ping.ashx.cs" Class="PROJECT_NAMESPACE.Ping" %>
public class Ping : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
context.Response.Write("Ping");
}
public bool IsReusable { get { return false; }}
}
请试试这个例子:-
<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>