2011-11-02 157 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()必須是異步的。