-
[JavaScript] Ajax란? 비동기서버통신Web/JavaScript 2019. 7. 26. 19:52
JavaScript는 Ecma라는 표준을 따르고 있다.
- HTML 문서 조작
- 유효성 검사
- function은 1급객체
Ajax (Asynchronous JavaScript and XML)
- 서버데이터를 가져와서 문서 조작에 사용하는 것을 말한다.
- 다른 페이지를 참조하는 것
- html과 자바의 통신을 담당하는 것
- XMLHttpRequest라는 객체로 서버에 필요한 데이터 요청 가능
- Text, Xml, HTML
- 비동기 서버통신이다.
- 핵심코드
동기 - 요청이 들어오면 순차적으로 실행
비동기 - 요청을 기다리지 않고 실행하는것
open함수- 요청의 초기화. GET/POST선택
send함수- post 웹서버 요청처리 (요청 응답시 시간이 지연된다)
onreadystatechange - 서버응답처리 (요청 ~ 응답 사이의 상태들)
- readyState
0 : UNINITIALIZED - 객체만 생성되고 아직 초기화
1 : LOADING - osend메소드호출 - 파라미터 전달 (요청)
2 : LOADING - send메소드(파라미터전달) 실행상태
3 : INTERACTIVE(상호작용) - 데이터 일부를 받은상태,
4 : COMPLETED - 데이터를 전부 받은 상태
200: 페이지요청성공
403: 권한 없음
404: 페이지 없음
405: 요청한 메소드(doGet, doPost)가 준비되지 않았음
500: 서버오류발생
Ajax는 UTF-8을 너무 좋아해~~!!
- XMLHttpRequest(서버통신객체) xhr
- 자바 클래스로 생각하면된다.
- 이 안에는 속성과 메소드가 존재한다.
속성
- readyState
- onreadystatechange : 이벤트 속성(readyState 변경되었을때)
- status: 서버의 상태
메소드 **
- open('HTTP요청방식', '요청URL','비동기방식') **
- send('요청URL에게 전달할 데이터') **
<클라이언트> <서버>
- JavaScript - JSP,Servlet(자바)
- 데이터요청 - 데이터 준비, 데이터 출력 out.print(데이터)
1.open(URL요청과 get방식의 데이터)
---------------------------->
2.send(post방식의 데이터)
---------------------------->
3.responseText 또는 responseXML
<----------------------------
※ 위의 1,2,3번을 실행하기 위해서는 XMLHttpRequest(xhr)객체가 필요!!
※ 3번(서버데이터 받기)은 콜백함수에 정의!!
------
이벤트 발생 후 실행하는 함수
-----
URL요청responseText의 자료형은 String
responseXML 의 자료형은 Document
setTimeout
window.onload
반응형'Web > JavaScript' 카테고리의 다른 글
[JavaScript] Document 자주 사용하는 메소드 정리 (0) 2019.07.31 [Ajax] eval() 함수, Json.parse()사용법 (JSON으로 변환하는 함수) (0) 2019.07.29 [JAVASCRIPT] 자바스크립트 문자열 자르기 (인덱스) (0) 2019.07.17 [JAVASCRIPT] select태그 값 변경하기 (0) 2019.07.17 [Web] XML, DTD, DOMParser 란? (0) 2019.06.27