action 间接调用 Oracle 存储过程 , 由于存储过程耗时过长(大约2小时) , 浏览器显示“无法显示页面”字样, 已经更改过queryTimeout和sessionTimeout的值,web服务器底层用的是tomcat, 也已经修改了connectTimeout为一个较大的值了。 请问如何才能显示出查询结果页面来。
新开一个线程去调用这个存储过程
做一个全局的标识 为false
存储过程执行完了 设置为true
页面头部设置refresh为1min
读取这个标识,如果false页面提示正在操作。
为true提示执行完毕,跳转到结果显示页面。
这样做,用异步去掉(可以用ajax),然后在js里设置一个全局标识,比如 state=false;
当处理完结果返回时,将state 改成true;
然后你在js里写一个线程每分种去掉一个方法,判断state,如果state=true就转发到页面
var time;
var state = false;
fuction sss(){
这里写你的ajax异步调用java的方法,结果返回后
设置 state = true;
}
function search(){
clearTimeout(time);
time = setTimeout("showSearchList()",10000);
}
function showSearchList(){
if(state==true)
document.forms[0].submit();
}
search 方法可以在页面onload时调用 <body onload="search();
你这种做法就有问题,建议把你的存储过程做成一个job让oracle定时自动执行,你的action只访问存储过程结果表中的数据,这样页面就不会长时间等待了。