Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.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
Java 异步调用问题_Java_Javascript_Jsp - Fatal编程技术网

Java 异步调用问题

Java 异步调用问题,java,javascript,jsp,Java,Javascript,Jsp,我在我的应用程序中面临线程问题,下面是问题的摘要 document.strikeoffForm.submit(); <% Thread.sleep(500)%> window.open('<%= baseURL %>/jsps/makeStrikeOffs/Print.jsp', "printStrikeoff"); :代码的根本原因 document.strikeoffForm.submit(); window.op

我在我的应用程序中面临线程问题,下面是问题的摘要

document.strikeoffForm.submit();           
<%  Thread.sleep(500)%>        
window.open('<%= baseURL %>/jsps/makeStrikeOffs/Print.jsp', "printStrikeoff");      
:代码的根本原因

document.strikeoffForm.submit();
window.open('<%= baseURL %>/jsps/makeStrikeOffs/Print.jsp', "printStrikeoff");
document.strikeoffForm.submit();           
<%  Thread.sleep(500)%>        
window.open('<%= baseURL %>/jsps/makeStrikeOffs/Print.jsp', "printStrikeoff");      
document.strikeoffForm.submit();
open('/jsps/makeStrikeOffs/Print.jsp',“printStrikeoff”);
它的发生是因为异步调用。问题是我这样做

document.strikeoffForm.submit();           
<%  Thread.sleep(500)%>        
window.open('<%= baseURL %>/jsps/makeStrikeOffs/Print.jsp', "printStrikeoff");      
  • 提交表格

  • document.strikeoffForm.submit();           
    <%  Thread.sleep(500)%>        
    window.open('<%= baseURL %>/jsps/makeStrikeOffs/Print.jsp', "printStrikeoff");      
    
  • 打开新窗口以显示提交的值

  • document.strikeoffForm.submit();           
    <%  Thread.sleep(500)%>        
    window.open('<%= baseURL %>/jsps/makeStrikeOffs/Print.jsp', "printStrikeoff");      
    
    但是在提交表单之前的一段时间,由于异步调用,2操作发生了

    document.strikeoffForm.submit();           
    <%  Thread.sleep(500)%>        
    window.open('<%= baseURL %>/jsps/makeStrikeOffs/Print.jsp', "printStrikeoff");      
    
    我想知道的是,第一次呼叫结束后,我如何订购物品,而不是只需要第二次呼叫窗口打开就可以了。由于此问题,窗口无法获得正确的值

    document.strikeoffForm.submit();           
    <%  Thread.sleep(500)%>        
    window.open('<%= baseURL %>/jsps/makeStrikeOffs/Print.jsp', "printStrikeoff");      
    

    我认为解决方案是用Ajax实现的,但我不知道该怎么做。

    这非常简单,只需一点点的修改。请尝试以下代码:

        $.ajax({
            type: 'POST',
            url: 'pageToSubmitTo.jsp',
            data: {
                $("#idOfYourForm").serialize()
            },
            beforeSend:function(){
                // this is where we append a loading image
            },
            success:function(data){
                // successful request; 
                window.open('jsps/makeStrikeOffs/Print.jsp', "printStrikeoff");
            },
            error:function(){
                // failed request; give feedback to user
            }
        });
    
    document.strikeoffForm.submit();           
    <%  Thread.sleep(500)%>        
    window.open('<%= baseURL %>/jsps/makeStrikeOffs/Print.jsp', "printStrikeoff");      
    

    为此,您必须将JQuery库添加到您的代码中。

    您好,非常感谢您的所有输入。
    document.strikeoffForm.submit();           
    <%  Thread.sleep(500)%>        
    window.open('<%= baseURL %>/jsps/makeStrikeOffs/Print.jsp', "printStrikeoff");      
    
    这可能不是正确的方法,但到目前为止,它的工作很好,所以它对我很好。。 我给出了如下解决方案:

    document.strikeoffForm.submit();           
    <%  Thread.sleep(500)%>        
    window.open('<%= baseURL %>/jsps/makeStrikeOffs/Print.jsp', "printStrikeoff");      
    
    document.strikeoffForm.submit();
    open('/jsps/makeStrikeOffs/Print.jsp',“printStrikeoff”);
    
    sleep()在JSP(http)中似乎很糟糕。