思路是这样的,下载事件触发两个提交一个action 一个是计算是否下载完毕一个action 当下载完毕,改变session中一个变量的值,另外一个action捕捉到这样的改变就会给页面一个反馈,儿下载action则将流输出到本地。
页面代码如下
window.top.opendiv("","<img src='${ctx}/images/dengdai.gif'>"); var url='${ctx}/timeJson/stat!calctime.action'; $.ajax({ type: "POST", url: url, data: "", success: function(data){ window.top.closedialog(); } });
该处调用一个div把当前页面遮盖起来 使之知道目前已经开始下载
// 计算时间
public String calctime() {
getSession().setAttribute("isend", "isbegin");
while (getSession().getAttribute("isend").equals("isbegin")) {
try {
Thread.sleep(4000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return "isover";
}
这段代码将一直观察session中的这个对象值是否改变如果改变结束观察 给页面返回信息