表单提交是同步还是异步的?

13

我想知道document.myForm.submit()是同步调用还是异步调用,是否会阻塞直到完成...或者它是异步的,将继续执行而不等待提交返回。感谢任何帮助。

3个回答

17

这是一个异步调用。

不过,某个时刻新页面会加载,你的页面也会被销毁。


这是否意味着在弹出窗口中使用“form.submit(); window.close();”序列是不正确的,因为在提交完成之前窗口可能已被销毁?我期望浏览器无论尝试关闭上下文都能确保请求完成,但我正在经历服务器端零散的更新失败,这就是为什么我询问(在徒劳的半小时谷歌搜索之后)。 - Sz.

4

在提交表单后,浏览器似乎会立即执行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()必须是异步的。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接