whilewon 2011-11-12 20:31
浏览 213
已采纳

想让session不超时,对于我这个问题怎么处理?

我的test.jsp页面内容如下:
[code="jsp"]
<%
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+request.getContextPath();
%>




function createXmlHttpObj() { var xmlHttp = false; try { xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e2) { xmlHttp = false; } } if (!xmlHttp && typeof XMLHttpRequest != "undefined") { xmlHttp = new XMLHttpRequest(); } return xmlHttp; //保持session不超时,每隔指定秒数数进行一次ajax访问页面 function keepSessionNotTimeOut(pointedSecond){ var __xmlHttp = createXmlHttpObj(); var __url='<%=basePath%>/common/index/blank.jsp'; //我在此页面已经有打印,访问没问题 var id=window.setInterval(function (){ __xmlHttp.open('get',__url,true); __xmlHttp.send(null); },pointedSecond*1000); } keepSessionNotTimeOut(1); function scan(){ var txt='<xml><id="23"></xml>' var retValue = CltObj.DocsNewCCZG(txt,''); //这是扫描空间的显示界面执行发法 //接下来就是我程序对扫描控件返回值retValue 做一些数据库插入 ,以后的代码省略 } }

[/code]

[size=large][b]问题详细:[/b]因为扫描控件界面我可能要操作30分钟以上,甚至要达到3小时,而我设置的SESSION超时是30分钟,首先我不能把SESSION超时设置3个小时。当运行扫描完资料,超过30分钟,当我再拿控件返回的数据进行插入数据库操作,则会提示超时。

[b]我的设想:[/b]执行scan方法的时候,keepSessionNotTimeOut方法一直在进行保持session不超时的ajax提交,这样即便扫描控件使用3小时,也不会因为超时而不能对控件返回的数据进行数据库插入。

[b]实现的糟糕结论:[/b]当我点击“扫描”按钮之后,keepSessionNotTimeOut的发送请求就不会执行,怎么看到没有执行,是我在被请求页面进行的输出得出结果。但是当我,关闭扫描界面,接着执行keepSessionNotTimeOut方法。

请求各位帮忙,怎么实现我的设想?是不是对优先于ActiveXObject对象的执行?这是我的表象结论。[/size]

  • 写回答

3条回答 默认 最新

  • qq1988627 2011-11-14 10:04
    关注

    1.设置定时器或者线程 当你启动扫描时候 同时向后台启动线程或者开始计时

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥20 数据排序,可选择排序方向
  • ¥15 修改一下代码,考虑进程到达时间不同的情况
  • ¥15 华为nova10pro ,关闭热动热点用量记录
  • ¥15 帮我看看这是个啥题,带解题过程和结果,条件如下FCF = 290471.33 g1 = 15% r = 8% g2 = 4% n = 5
  • ¥15 edem模拟颗粒不显示或者生成失败
  • ¥15 Python代码编写
  • ¥15 php 将rtmp协议转hls协议,无法播放
  • ¥20 python代码编写
  • ¥20 使用MPI广播数据遇到阻塞
  • ¥15 TinyMCE如何去掉自动弹出的“链接…”工具?