2011-11-02 114 views
9

我只是想知道,如果document.myForm.submit()是一个同步调用,这将阻塞,直到完成...或者如果它是异步,并将继续执行而不等待提交返回。谢谢你的帮助。表单提交同步还是异步?

回答

14

这是一个异步调用。

但是,在某一时刻,新页面将加载,并且您的页面将被销毁。

+0

这是否意味着一个'form.submit(); window.close();'弹出序列是错误的,因为在提交完成之前窗口可能会被破坏?我希望浏览器能够确保请求完成,而不管关闭上下文的尝试,但是我在服务器端遇到偶发的更新失败,这就是为什么我要求(经过半个小时的徒劳无功搜索)。 –

1

浏览器似乎在提交表单后立即继续执行javascript。在此jsFiddle示例中,在提交表单之前打印日志语句。

标记

<form action="foobar"></form> 
<button id="submitBtn">Submit</button> 

的Javascript

var button = document.getElementById('submitBtn'); 
button.onclick = function() { 
    document.forms[0].submit(); 
    console.log('after submitting'); 
}; 
1

我有一个页面重新加载功能的方法,提交后立即如下的JSP页。 然后我立即面对'意外的零件结束'错误。 Submit()必须是异步的。