Library/JQuery

[jQuery / 제이쿼리] form전송 VS Ajax전송

junheekim 2022. 12. 13. 14:30

 

 

 

form전송과 ajax전송의 차이

 

 

form전송 : 동기방식

ajax전송 : 비동기방식

 

 

 

여기서 동기와 비동기의 차이는? 

 

 

동기(Synchronous)방식은 서버에 요청을 보냈을때 응답이 돌아와야 다음 동작을 수행할 수 있습니다.

비동기(Asynchronous)방식은 요청을 보내고 응답을 기다리지 않고 다음 동작을 수행할 수 있습니다.

 

 

 

form 전송 (동기 방식)

 

form전송 방식은 완료될때 페이지 전체가 리로드 되는 방식으로 submit type의 버튼 클릭시 form태그의 action에 있는 주소로 form태그안에 데이터를 보내고 서버에서는 name속성값으로 받을 수 있습니다.

 

 

 

<form action="/login" method="post" id="signup">
    <input type="text" id="usr_id" name="usr_id" placeholder="아이디">
    <input type="password" id="usr_passwd" name="usr_passwd" placeholder="비밀번호(영문+숫자+특수문자, 6~12자) ">
    <button type="submit" >가입하기</button> 
</form>

 

 

 

장점 :  1. 설계가 매우 간단하고 직관적입니다.

단점 :  1. 동기방식이라 전송요청을 보내고 응답이 올때까지 기다려야합니다.

           2. 전체 리소스를 다시 불러와야하기 때문에 불필요한 부분들도 불어와야하기 때문에 리소스낭비가 발생합니다.

 

 

 

 

ajax 전송 (비동기 방식)

 

 

장점 :  1.  ajax로 서버와 통신을 하면 전체 페이지를 리로드하지 않고 일부분만을 업데이트 할 수 있습니다.

           2. 요청후 응답을 기다리지 않고 다음동작을 수행 할 수 있어 효율적입니다.

단점 :  1. 설계가 복잡하다.

 

 

 

serialize

 

serialize함수를 이용하면 form요소에 입력받은 데이터를 직렬화 할 수 있습니다.

여기서 직렬화란 입력받은 데이터를 하나의 쿼리 문자열로 만드는 것입니다.

이렇게 직렬화한 데이터를 queryString변수에 담아준뒤 data에 담아서 요청 할 수 있습니다.

 

 

 

var queryString = $("#signup").serialize();

   $.ajax({
      type : 'post',
      url : '/login',
      data : queryString,
      dataType : 'json',
      error: function(xhr, status, error){
         alert("실패");
      },
      success : function(json){
         alert("성공")
      }
   });

 

 

 

 

 

 

참고자료 

https://velog.io/@ayleen9506/ajax-form