2011-11-02 3 views
9

나는 document.myForm.submit()이 동기 호출인지, 아니면 완료 될 때까지 블록 될지 궁금해하고있다. 또는 그것이 async이고 submit이 리턴되기를 기다리지 않고 계속 실행하면 궁금하다. 어떤 도움을 주셔서 감사합니다.양식이 동기식 또는 비동기식 제출입니까?

답변

14

비동기 호출입니다.

그러나 어떤 시점에서 새 페이지가로드되고 페이지가 삭제됩니다.

+0

이 말은 'form.submit(); window.close();'제출이 완료되기 전에 창이 파손되기 때문에 팝업의 순서가 잘못 되었습니까? 컨텍스트를 닫으려는 시도에 관계없이 브라우저가 요청을 끝내기를 기대하지만 서버 측에서 산발적 인 업데이트 오류가 발생하고 있으므로 (이유없이 30 분의 인터넷 검색 결과를 묻는 것입니다.) –

1

브라우저가 양식을 제출 한 직후 자바 스크립트를 계속 실행하는 것으로 보입니다. 이 jsFiddle 예제에서 양식을 제출하기 전에 log 문이 인쇄됩니다.

마크 업

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

자바 스크립트

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

가 나는 페이지 다시로드 기능은 바로 제출 방법 후 다음 JSP 페이지를했다. 그런 다음 즉시 '예상치 못한 부분 종료'오류가 발생했습니다. Submit()가 비동기이어야합니다.

관련 문제