예제

Jquery를 이용한 Ajax 패턴 예제

pyogowoon 2023. 1. 4. 13:19
let index = {

init: function(){
    $("#btn-save").on("click", ()=>{
         this.save();
    });
 

 },
save: function(){

             let data = {
                 title: $("#title").val(),
                 content: $("#content").val(),

             };

             $.ajax({
                  type: "POST",
                   url: "/api/board",
                   data: JSON.stringify(data), //http body 데이터
                   contentType:"application/json; charset=utf-8",
                   dataType:"json"

             }).done(function(resp){

                     alert("글쓰기가 완료되었습니다.");
     //
                     location.href="/";
             }).fail(function(error){
                 alert(JSON.stringify(error));
             });

         },
         
         }      //////// let index 영역
         
         index.init();

 ajax의 type은 GET 방식이 Default

 

 

 

Ajax
 Ajax(Asynchronous Javascript and XML , 에이잭스)는 대화식 웹 애플리케이션의 제작을 위해 이용하는 웹 개발 기법.
 
 
장점
  • 페이지 이동없이 고속으로 화면을 전환할 수 있다.
  • 서버 처리를 기다리지 않고, 비동기 요청이 가능하다.
  • 수신하는 데이터 양을 줄일 수 있고, 클라이언트에게 처리를 위임할 수도 있다.
단점
  • Ajax를 쓸 수 없는 브라우저에 대한 문제가 있다.
  • Http클라이언트의 기능이 한정되어 있다.
  • 페이지 이동없는 통신으로 인한 보안상의 문제
  • 지원하는 Charset이 한정되어 있다.
  • 스크립트로 작성되므로 Debugging이 용이하지 않다.
  • 요청을 남발하면 역으로 서버 부하가 늘 수 있음.
  • 동일-출처 정책으로 인해 다른 도메인과는 통신이 불가능하다.
 < 참고 >

 

1. jquery Ajax 기본 메서드

$.ajax( url [, settings ] );

 

---> 사용예제 보기
 
 
 

2. jquery Ajax 부가 메서드

1) $.get(url [,data][,success][,dataType])               get 방식으로 ajax 를 수행함

2) $.post(url [,data][,success][,dataType])             post 방식으로 ajax 를 수행함

3) $.getJSON(url [,data][,success])                       get 방식으로 ajax 를 수행하여 json 데이터를                                                                         가져옴 (jsonp 사용가능)

4) $.getScript(url [,success])                                get 방식으로 ajax 를 수행하여 javascript                                                                         데이터를 가져옴

5) $(selector).load(url [,data][,complete])               ajax를 수행한 후에 선택자로 선택한 문서 

객체 안에 응답 데이터를 넣음

 
 
 

3. jquery Ajax 보조 메서드

1) $.param( obj )                        객체의 내용을 요청 매개 변수 문자열로 만듬

예제보기

 

2) .serialize()                            입력 양식의 내용을 요청 매개 변수 문자열로 만듬

예제보기

 

3) .serializeArray()                            입력 양식의 내용을 객체로 만듬

예제보기
 
 
 

4. jquery Ajax 이벤트 연결 메서드

  - spinner 구현 등에 사용 ( 아래 순서대로 이벤트 실행 )

  - 만약 $.ajax() 나 $.ajaxSetup() 의 global 옵션값이 false 이면 이벤트 핸들러는 작동하지 않음

1) .ajaxStart( handler )                        ajax 요청을 시작할 때 실행

2) .ajaxSend( handler )                       ajax 요청을 보낼 때 실행

3) .ajaxSuccess( handler )                  ajax 요청이 성공할 때 실행

4) .ajaxError( handler )                        ajax 요청이 실패할 때 실행

5) .ajaxComplete( handler )                  ajax 요청이 완료될 때 실행

6) .ajaxStop( handler )                        ajax 요청을 중지할 때 실행

 
예제보기
 
 
○ Ajax 를 동기방식(순차적 프로세스)으로 사용하기
  : 기본적으로 비동기로 데이터를 처리하기 위해 쓰는 ajax 이지만 가끔 순차적으로 프로세스가 진행되어야 할 경우가 있음.
    가끔 코드 보다보면 setTimeout 함수를 써서 일부러 다음 프로세스를 지연시켜 실행하는 경우도 발견함.
 
    이런 경우 간단하게 속성에서 async:false (비동기:해제) 를 추가하자.
 
    요로코롬...

$.ajax({
               type: 'POST',
               url: 'test/test.jsp',
               data: dataParam,

                   async: false,
                   success: function(data) {
                    if(data != null) {
                         
                    }
               }
          });