AJAX란? JQuery를 이용한 AJAX사용법

2022. 5. 27. 19:07·Front-End/JSP

AJAX (Asynchronous Javascript And XML) 란 무엇인가?

  • 자바스크립트를 이용해 서버와 브라우저가 비동기 방식으로 데이터를 교환할 수 있는 통신기능
  • 클라이언트와 서버간에 XML 데이터를 주고받는 기술이다

비동기 방식이란?

  • 웹페이지를 리로드 하지 않고 데이터를 불러오는 방식
  • 웹페이지에서 기타 코드들을 요청할 경우, 웹페이지를 리로드 하면서 불필요한 리소스가 낭비가 되는데, 비동기 방식을 이용하면 필요한 데이터만 불러오면서 리소스 낭비를 줄일 수 있다.
  • AJAX는 XMLHttpRequest객체를 통해 서버에 request한다.
  • JSON이나 XML형태로 필요한 데이터만 받아 갱신하기 때문에 그만큼의 자원과 시간을 아낄 수 있다.

AJAX의 장점

  • 웹페이지 속도향상
  • 서버의 처리가 완료될 때까지 기다리지 않고 처리 가능
  • 기존 웹에서 불가능했던 UI를 가능하게 해줌

AJAX의 단점

  • 페이지 이동이 없는 통신으로 보안상의 문제가 있을수 있음
  • 연속으로 데이터 요청시 서버 부하가 증가
  • 히스토리 관리가 안된다.
  • Script로 작성되서 디버깅이 용이하지 않음

JQuery를 이용한 AJAX의 사용

AJAX문법

$.ajax({
    type : 'post',           // 타입 (get, post, put 등등)
    url : '/test',           // 요청할 서버url
    async : true,            // 비동기화 여부 (default : true)
    headers : {              // Http header
      "Content-Type" : "application/json",
      "X-HTTP-Method-Override" : "POST"
    },
    dataType : 'text',       // 데이터 타입 (html, xml, json, text 등등)
    data : JSON.stringify({  // 보낼 데이터 (Object , String, Array)
      "no" : no,
      "name" : name,
      "nick" : nick
    }),
    success : function(result) { // 결과 성공 콜백함수
        console.log(result);
    },
    error : function(request, status, error) { // 결과 에러 콜백함수
        console.log(error)
    }
})
  • type : GET 또는 POST 지정
  • url : ajax로 요청할 대상 URL 지정
  • async : 동기, 비동기 지정(boolean)
  • dataType : 받아올 테이터의 자료형 지정
  • data : 요청 할때 보낼 데이터 지정
  • success : ajax 요청 성공시 실행할 이벤트 지정 (function, array)
  • error(xhr, status, error): ajax 요청 실패 시 실행할 이벤트 지정(function)
  • complete : ajax 요청 완료시 실행할 이벤트 지정(function)

AJAX 예시

//   요청한 데이터 : {"member_list":[
//    {"id":"aa1","pw":"bb","addr":"cc","tel":"dd"},
//    {"id":"aa2","pw":"bb","addr":"cc","tel":"dd"},
//    {"id":"aa3","pw":"bb","addr":"cc","tel":"dd"}
//  ]}

<script>
$(document).ready(function(){
    $("#listButton").click(getMemberList); //id="listButton"인 태그에 click하면 function getMemberList() 실행
});
function getMemberList(){
    $.ajax({
        url:"list.jsp",                    //list.jsp에 AJAX요청
        success:function(data){
            let obj=JSON.parse(data);      //data를 받아와서 JSON형태로 변환
            let array=["<ol>"]; 
            obj["member_list"].forEach(
                    member =>  array.push("<li>"+member.id+"</li>")    
                    //JSON에 있는 member.id의 value를 li태그에 넣어서 array에 넣어줌
            );
            array.push("</ol>");                                   

            $("#result").html(array.join(""));  
            //array의 요소들을 다 합쳐서 하나로 만든후 id="result"인 태그에 html로 출력
        }
    });    
}
</script>
<body>
    <a href="#" id="listButton">회원리스트</a><br/>
    <div id="result">이곳에 회원 목록을 출력하세요</div>
</body>
반응형
'Front-End/JSP' 카테고리의 다른 글
  • 내장 객체 영역
  • [JSP] Include 액션태그
  • [JSP] 서버에서 클라이언트로 JSON 데이터 전송하기
  • JSON이란?
LightSource
LightSource
어제보단 발전한 오늘의 나를 위한 블로그
    반응형
  • LightSource
    LightSourceCoder
    LightSource
  • 전체
    오늘
    어제
    • 분류 전체보기 (152)
      • Git (4)
      • Language (6)
        • Java (6)
      • Back-End (63)
        • Spring Boot (4)
        • MyBatis (1)
        • Oracle (1)
        • PL SQL (3)
        • JPA (26)
        • Spring Data JPA (5)
        • Spring MVC (8)
        • Spring (12)
        • Spring Security (2)
        • Redis (1)
      • Front-End (38)
        • 아이오닉 (2)
        • JSP (7)
        • JavaScript (4)
        • React (16)
        • TypeScript (3)
        • Angular (6)
      • AWS (1)
      • CI & CD (1)
      • 개발지식 (13)
        • 네트워크 (9)
        • CS 지식 (4)
      • 데이터모델링 (2)
      • Tool (1)
      • 프로젝트 (5)
      • 독후감 (2)
      • 잡생각 (0)
      • 면접 준비 (1)
      • 알고리즘 (14)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    react
    리액트
    배요소열추가
    배열요소수정
    배열요소삭제
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
LightSource
AJAX란? JQuery를 이용한 AJAX사용법
상단으로

티스토리툴바