日期:2014-05-18  浏览次数:20526 次

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

    web.config文件中的会话设置: <sessionState   regenerateExpiredSessionId= "true "   timeout= "1 "/>

  代码的意图就是,让客户端定期调用服务端方法,从而保持会话状态不受会话超时时间的限制。而实际的运行效果是,大部份时间能保持会话,但仍然有些时候会丢失会话。
  希望能引起同道朋友们的一些探讨,提供一些看法。望不吝赐教!



------解决方案--------------------