用Ajax保持会话

  在一个项目中,需要让会话变量存在于页面关闭之前的整个周期内,尝试用asp.net ajax的方式来实现,代码如下所示:
  .aspx页面中,<body>标签:<body onload="KeepActive();">
  客户端JS代码:
  function KeepActive(){
  PageMethods.KeepSession();
  setTimeout("KeepActive();",600000);
  }
  后台.cs代码:
  [System.Web.Services.WebMethod]
     public static void KeepSession()
     {
     }

  代码的意图就是,让客户端定期调用服务端方法,从而保持会话状态不受会话超时时间设置的限制。从实际的运行效果来看,绝大部份时间是能够达到预期的目的的。但众所周知,Session在某些情况下是会丢失的,所以这种方法对Session因非超时原因而丢失还是无能为力的。
  

原文地址:https://www.cnblogs.com/cunet/p/821411.html