有没有办法我可以继续在JSP中执行Javascript,直到Java代码完全执行。

时间:2013-11-24 08:30:38

标签: javascript jsp extjs4

我想在页面上显示一个等待框,直到JSP中的Java代码完成执行。是否有可能,如果您查看下面的代码,是否可以在页面上显示waitBox,直到“ UA.activateUser(UUID); ”完成其执行。

JSP代码:

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

%>

1 个答案:

答案 0 :(得分:2)

是的,这是可能的:只需在隐藏消息框的JSP代码之后输出script元素。浏览器在收到页面时呈现页面,并在收到页面时执行script个元素。但这意味着您无法使用Ext的{​​{1}},因为这将等待页面加载完成。

这些方面的东西:

onReady

注意我已经使用JspWriter#flush来确保在激活用户之前已将部分输出发送到浏览器。