(XML을 이용한) 비동기식 자바스크립트 통신 기술
👀 Example
회원가입에서 아이디 중복 검사
-> 새 창 띄워서 하는건 동기식으로 구성하는 것
장바구니 항목 추가하고 "계속 쇼핑하기"
SNS의 좋아요 버튼
무한 스크롤
게시글의 댓글창만 새로고침/불러오기
동기화 : 요청과 응답이 순서대로 이루어짐
비동기적 : 요청에 대해 응답이 순차적으로 오지 않음 요청과 응답을 주관하는 객체가 따로 하나 생김
동기적 -> 응답에 의해 화면이 바뀌는 것
동기 : 요청이 있으면 응답을 해서 브라우저에 반영해줌(MIME)
비동기 : 응답에 대한 처리를 안함(반드시 무엇을 해야한다~ 가 없음)
인스타 스크롤 내리는거 비동기! 위에 이미 본거 그대로 유지하면서 새로운 게시글들 보이게..
네이버 회원가입 : 아이디 입력시 이미 사용중이거ㅏㄴ 탈퇴한 아이디이넉 알려주는 것
네이버 뉴스 댓글에 답글 더보기 기능! 현재 에이젝스로 구현된건 아니지만 에이젝스로 구현할 수도 잇음
검색창에 글자 입력할 때마다 비동기적으로 자동완성 키워드 추천
여기가 움직이면 동기적인 것(화면의 응답을 기다림)
readyState : XHR객체로 AJAX통신에 따라 준비-요청-응답-완료 단계를 거침 ➡ Life Cycle
onreadystatechange : readyState속성값이 변경될 때마다 호출되는 콜백함수를 지정하는 속성
status : HTTP 응답 상태 코드
statusText : HTTP 응답 상태 메시지
Http status code
responseText : 응답 데이터를 문자열 타입으로 파싱(추출)해놓은 속성
responseXML : 응답 데이터를 XML 형식으로 파싱(추출)해놓은 속성
HTTP요청 메시지에서 중요한 것
Request URL
Request Method
Request Parameter -> url 뒤에 붙어서 올 것
function calc() { console.log("calc() called") //XHR객체 생성 -> 이미 존재하므로 new만 해도 된 xmlHttp = new XMLHttpRequest(); console.log(xmlHttp) //전달 데이터 구하기 var n1 = num1.value var n2 = num2.value var op = oper.value console.log(n1, n2, op) //AJAX 요청 전 설정 //요청 URL var url = "./ajax_02_ok.jsp" //요청 Method var method = "POST" //요청 Parameter var params = "num1 =" + n1 + "&num2=" + n2 + "&oper=" + op //오류없이 잘 적었나는 서버에 보내봐야 알 수 있음 //AJAX 요청 준비 xmlHttp.open(method, url) xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded") //콘텐트타입 신경써줘야해.. //AJAX 요청 보내기 xmlHttp.send(params) --여기까지 하고 아래 세개 확인하기 --현재 ok페이지 안만들어서 404 에러나는건 맞음 }
ok 페이지 만들고 확인할 것
200번인지
하이 뜨는지 확인하기
결과가 이 div 안에 들어갈것이므로
02_ok에는 인코딩 코드를 제외한 아무것도 있으면 안됨
그러고 01_ok에서 복붙해오기
하고! 계산 해서 위에처럼 확인해보기
저기 함수 작성해줘야하는데 익명함수로 작성하면 길어져서 밖에서 작성하고 함수 호출만 할게