一个jsp页面通过一个按钮触发一个后台任务,

皮卡丘_后盾 2015-04-20 05:32:36
一个jsp页面通过一个按钮触发一个后台任务,这个任务可能要执行10几分钟,我想让用户在这段时间可以做其他的事情,反正就是不要傻等着,于是我弹出一个dialog提示框,然后ajax去后台执行任务,但是框没弹出来,页面也啥都点击不了

排除多线程解决方法


<a onclick="go();" class="easyui-linkbutton" data-options="iconCls:'icon-search'">开始</a>
<div id="view_dialog" title="数据获取" class="easyui-dialog"
data-options="closed:true">
数据爬取中,可能会耗费一些时间,您可以先做些其他操作
</div>


<script language="javascript">
function go(){
$('#view_dialog').dialog('open');
$.ajax({
type: "post",
url: "<%=request.getContextPath()%>/xx/xx/xx_getData.action",
dataType: "json",
async: false,
success: function (data) {
if (!data.success) {
alert("数据获取失败");
} else {
alert("数据获取完成");
}
$('#view_dialog').dialog('close');
},
error: function (textStatus) {
alert("数据获取失败");
$('#view_dialog').dialog('close');
}
});
}
</script>
...全文
507 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
hymwrj1 2015-04-25
  • 打赏
  • 举报
回复
ajax分为同步和异步。同步就是等待后后返回数据后,jsp页面再执行相关操作。异步就是不用等后台,该干嘛干嘛。后台数据到了,再调你前台的方式执行。 你async: false表示你用的同步,自然要等后台返回数据了,再执行的弹出框操作。完了你后台执行10多分钟,当然一时半会儿弹不出来了。 你的流程是这要: function go(){ alert("数据爬取中,可能会耗费一些时间,您可以先做些其他操作") 异步ajax请求(包含你回调的方法)........ } function 回调的方法(){ 后台执行10多分钟完成后,再行操作。 }
pengjiewen 2015-04-25
  • 打赏
  • 举报
回复
改为 async: true,试试
xuan.ye 2015-04-22
  • 打赏
  • 举报
回复
async: false, 改为 async: true,
zx8813443 2015-04-21
  • 打赏
  • 举报
回复
async: true
改为异步调用
ylovep 2015-04-21
  • 打赏
  • 举报
回复
连接超时了???

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧