Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有一种方法可以让我一直在JSP中执行Javascript,直到Java代码完全执行为止。_Javascript_Jsp_Extjs4 - Fatal编程技术网

有没有一种方法可以让我一直在JSP中执行Javascript,直到Java代码完全执行为止。

有没有一种方法可以让我一直在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

我希望在页面上显示一个等待框,直到JSP中的Java代码完成执行。如果您查看下面的代码,是否可以在页面上显示等待框,直到“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);

%>

很抱歉
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