클라이언트가 서버로 데이터를 요청하면 응답이 올 때까지 다른 작업은 대기함
클라이언트가 서버로 데이터 요청 후 응답을 기다리지 않고 다른 작업 수행 가능함
-> 추후 요청에 대한 응답이 오면 응답에 관련된 작업을 진행
(Asynchronous JavaScript and XML)
- JavaScript를 이용하여 비동기식으로 클라이언트와 서버가 데이터(XML)를 주고 받는(통신) 방식
- 데이터 형식은 XML뿐만 아닌 Text, HTML, JSON, CSV 등 다양한 형식 사용 가능
Ajax는 브라우저 내장 객체인 XMLHttpRequest를 이용하여 비동기식으로 데이터를 송수신함
(IE 브라우저는 ActiveXObject 객체 사용)
객체 생성 -> script문에 요청을 위한 XMLHttpRequest
객체 생성
서버 응답 처리 함수 생성 및 지정 -> onreadystatechange
에 함수 지정
readyState
(서버 응답 상태 확인), status
(Http 응답 상태 코드 확인)responseText
/ responseXML
요청 방식, 대상(서버), 동기/비동기 지정 -> open()
메소드 호출
대상(서버)에 전송 -> send()
메소드 호출
$.ajax({
url : “요청이 전송되는 url이 포함된 문자열” // 필수 구현 속성
[,settings] // 선택 속성(다수 속성 선택 가능)
});
속성명 | 설명 |
---|---|
url | 요청(request) 데이터를 전송할 URL |
data | 서버로 전송할 요청 Parameter 설정 |
type | Http 요청 방식 지정 (GET / POST) |
datatype | 서버의 응답(response)데이터의 형식(xml,text,json,html 등)을 지정 미작성 시 자동으로 판단하여 지정 |
success(data) | ajax 통신 성공 시 호출되는 함수를 지정 매개변수로 응답 데이터를 받음(data) |
error | ajax 통신 실패 시 호출되는 함수를 지정 |
complete | ajax통신 성공여부와 관계없이 통신 완료 후 실행되는 함수 지정 |
async | 비동기(true) / 동기(false) 지정 |
JavaScript Object Notation (자바스크립트 객체 표현법)
Javascript 객체를 {k, v} 형태로 나타내는 언어
간단한 포맷
- 괄호 {} 내에 key : value 쌍으로 구성 -> { “key” : value }
- key : 반드시 문자열 사용 (쌍 따옴표(“”) 표기 필수)
- value : String, Number, Boolean, Array, Object, null 데이터 저장 가능
(단, char 데이터는 저장 불가)
객체{} 또는 배열[] 데이터를 효율적으로 표시 가능
JSON.parse(문자열)
문자열 -> JS 객체로 변환
Google JSON
Google에서 만든 오픈 라이브러리로 JSON파일을 쉽게 읽고, 만들 수 있는 메소드 제공
toJSON(Object, Appendable)
매개변수 Object를 JSON으로 변환하여 Appendable에 연결된 출력스트림으로
출력하는 메소드
기존 JSON방식으로 변환하기 번거로웠던 List, Map 객체를
별도의 방법이 아닌 toJson()메소드 하나도 쉽게 JSON으로 변환 가능
List, Map 뿐만 아닌 모든 Object 변환 가능