有没有一种方法可以让我一直在JSP中执行Javascript,直到Java代码完全执行为止。
我希望在页面上显示一个等待框,直到JSP中的Java代码完成执行。如果您查看下面的代码,是否可以在页面上显示等待框,直到“UA.activateUser(UUID);”完成其执行 JSP代码:有没有一种方法可以让我一直在JSP中执行Javascript,直到Java代码完全执行为止。,javascript,jsp,extjs4,Javascript,Jsp,Extjs4,我希望在页面上显示一个等待框,直到JSP中的Java代码完成执行。如果您查看下面的代码,是否可以在页面上显示等待框,直到“UA.activateUser(UUID);”完成其执行 JSP代码: <html> <head> <title>Sorry</title> <meta charset="UTF-8"> <meta name="viewport" content="wid
<html>
<head>
<title>Sorry</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width">
<script type="text/javascript" src="ext-all.js"></script>
<link rel="stylesheet" type="text/css" href="ext-all.css" />
<script type="text/javascript">
Ext.onReady(function(){
Ext.MessageBox.show({
msg:'Activating your account, please wait....',
progressText:'Authenticating E-Mail address',
width:300,
wait:true,
waitConfig:{interval:200}
});
setTimeout(function(){
Ext.MessageBox.hide();
Ext.example.msg('Welcome','Your account has been activated, You can now login');
},8000);
});
</script>
</head>
<body>
</body>
</html>
<%
String UUID=request.getParameter("uuid");
userOperation UA=new userOperation();
UA.activateUser(UUID);
%>
很抱歉
Ext.onReady(函数(){
Ext.MessageBox.show({
消息:“正在激活您的帐户,请稍候…”,
progressText:“正在验证电子邮件地址”,
宽度:300,
等等:是的,
waitConfig:{interval:200}
});
setTimeout(函数(){
Ext.MessageBox.hide();
msg('欢迎','您的帐户已激活,您现在可以登录');
},8000);
});
是的,这是可能的:只需在隐藏消息框的JSP代码之后输出一个脚本
元素。浏览器在接收页面时呈现页面,并在接收元素时执行script
元素。但是,这意味着您不能使用Ext
的onReady
,因为这将等待页面加载完成
大致如下:
<html>
<head>
<title>Sorry</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width">
<script type="text/javascript" src="ext-all.js"></script>
<link rel="stylesheet" type="text/css" href="ext-all.css" />
</head>
<body>
<script>
// This is executed as soon as the closing tag is received
Ext.MessageBox.show({
msg:'Activating your account, please wait....',
progressText:'Authenticating E-Mail address',
width:300,
wait:true,
waitConfig:{interval:200}
});
</script>
<%
// Flush to make sure the browser is sent the above
out.flush();
String UUID=request.getParameter("uuid");
userOperation UA=new userOperation();
UA.activateUser(UUID);
// Now that's done, output the follow-up script
%>
<script>
// This isn't sent until the above is complete
Ext.MessageBox.hide();
Ext.example.msg('Welcome','Your account has been activated, You can now login');
</script>
</body>
</html>
很抱歉
//这将在收到结束标记后立即执行
Ext.MessageBox.show({
消息:“正在激活您的帐户,请稍候…”,
progressText:“正在验证电子邮件地址”,
宽度:300,
等等:是的,
waitConfig:{interval:200}
});
天才,谢谢你。:-)5分钟后,如果我被允许,我会将它标记为一个答案。在Java代码之后编写代码以隐藏框,或者使用AJAX,以更适合您的为准。;)@查理·阿富米加托:我真的应该选择阿贾克斯。这是一个很好的替代方法。@T.J.Crowder嘿,当我像你在回答中那样删除Ext.onReady(function(){})时,等待框根本没有被渲染。@Kapilchattani:可能是Ext
拒绝显示框,如果它的“ready”事件还没有发生,我不知道Ext
。然后可以操纵DOM,并显示一条弹出式消息。我只是不知道你是否可以使用Ext
。