异步调用问题

Asynchronous call issue

本文关键字:问题 调用 异步      更新时间:2023-09-26

我在应用程序中面临线程问题,以下是问题的总结

:代码

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

由于异步调用而发生。问题是我这样做,

    提交表单
  1. 打开新窗口显示提交的值

但是在提交表单之前的一段时间,由于异步调用发生了2个动作。

我想要的是如何安排事情,一旦第一次调用完成,只有第二次调用窗口打开应该发生。因为这个问题,窗口没有得到正确的值。

我认为解决方案在Ajax,但我不知道怎么做。

使用一点JQuery和一点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
        }
    });

要做到这一点,你必须在你的代码中包含JQuery库

大家好!这可能不是正确的方式,但到目前为止,它工作得很好,所以对我很好。我给出了这样的解决方案:

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