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条)

报告相同问题?

悬赏问题

  • ¥15 网络科学导论,网络控制
  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)