날아라쩡글이의 블로그입니다.

AJAX 본문

중앙 HTA (2106기) story/javascript story

AJAX

날아라쩡글이 2021. 12. 20. 13:58
반응형

일반 Http통신(동기식 통신)

  • 요청시에는 컨텐츠가 표시되지 않음
    • 새 요청을 보낼 수 없음
  • 서버와 클라이언트가 동기식 통신을 하기 때문에 
    • 화면 전체가 리로딩 된다. 
      • 컨텐츠가 표시되지 않은다. 
      • 따로 누를 수 있는게 없다. 
    • 응답이 올 때까지 대기상태이다. 
    • 요청->응답->요청->응답의 순서로만 동작한다. 
  • 무조건 응답이 와야한다. 
  • 서버도 요청이 오지 않으면 응답을 보낼 수 없다. 
  • 웹브라우저가 요청보내기와 응답받기를 담당한다. 
  • 전체에서 이 방식을 사용한다. 
  • 컨텐츠가 표시되지 않는 시간이 존재하지 않는다. 
  • 화면표시가 되어 있기 때문에 언제든지 새로운 요청을 할 수 있다. 
  • 화면전체가 리로딩 되지 않는다. 
  • 요청에 대한 응답을 기다리지 않고, 새요청을 웹서버로 보낼 수 있다. 
  • 요청->응답->요청->응답 순서를 지켜서 서버와 통신할 필요가 없다. 
    • 요청은 2번이상 가능하다. 
  • XHR은 보내기/응답받기를 담당한다. 
  • 서버와 클라이언트가 비동기식 통신을 한다. 
  • 화면의 특정 부분을 바꾸고싶을때, html일부분을 갱신하고 싶을 때 사용한다. 
    • 검색창부분만 특정부분으로 갱신할 때 처럼 사용한다. 

XMLHttpRequest로 웹 서버와 비동기식 통신하기 

  • function renAjax(){

    //서버와 비동기식 통신 시작
    //1.XMLHttpRequest 객체 
    var xhr = new XMLHttpRequest();

    //2. XMLHttpRequest객체의 상태가 변할 때마다 실행할 메소드 등록하기 
    xhr.onreadystatechange = function(){
    if(xhr.readystate == 4 && xhr.status == 200){

    //5. XMLHttpRequest의 responseText프로퍼티에 저장된 응답데이터를 가져오기 
    var jsonText = xhr.responseTexr;

    //6.jsonText를 자바스크립트 객체/ 배열로 변환하기 
    var products = JSON.parse(jsonText);

    //7.응답데이터로 HTML컨텐츠를 생성하기 
    var htmlContent="";
    products.forEach(item => {
    htmlContent+= "<tr>";
    htmlContent+= "<td>"+item.no+"</td>";
    htmlContent+= "<td>"+item.name+"</td>";
    htmlContent+= "<td>"+item.company+"</td>";
    htmlContent+= "<td>"+item.price+"</td>";
    htmlContent+= "<td>"+item.discountPrice+"</td>";
    htmlContent+= "<tr>";
    });
    // 8.생성된 HTML컨텐츠를 화면의 특정부분에 추가한다.
    var tbody = document.querySelector("#table-products tbody");
    tbody.innerHTML = htmlContent;
    }}


    //3.XMLHttpRequest객체 초기화 
    xhr.open("GET","/script2/product/list.hta");//JSON형태로 저장되어있는 장소

    //4.웹서버로 요청보내기 
    xhr.send();
반응형

'중앙 HTA (2106기) story > javascript story' 카테고리의 다른 글

jQuery 선택자  (0) 2021.12.21
jQuery  (0) 2021.12.21
JSON  (0) 2021.12.18
Date메소드, math메소드  (0) 2021.12.18
객체 생성하기  (0) 2021.12.18
Comments