Ajax (Asynchronous JavaScript and XML)
Ajax는 비동기 방식으로 서버에 신호를 보냈을 때 응답 상태와 상관없이 다음 동작을 수행할 수 있도록 한다.
Ajax를 통해 서버와 클라이언트 간 JSON, TEXT, HTML, XML 등 정보를 화면 전환 없이 교환할 수 있어 사용자가 기다릴 필요없이 다른 작업을 바로 수행할 수 있다.
ex) 커뮤니티 댓글처리, 검색엔진 자동완성 등..
Ajax 관련 메서드
종류 | 설명 |
load() | 외부 컨텐츠를 가져올 때 사용 |
$.ajax() | 데이터를 서버에 HTTP POST, GET 방식으로 전송, HTML, XML, JSON, TEXT 유형에 데이터를 요청할 수 있는 통합적인 메서드, $.post(), $.get(), $.getJSON() 메서드의 기능을 합쳐 놓은 것 |
$.post() | 데이터를 서버에 HTTP POST 방식으로 전송 후 서버 측 응답을 받을 때 사용 |
$.get() | 데이터를 서버에 HTTP GET 방식으로 전송 후 서버 측 응답을 받을 때 사용 |
$.getJSON | 데이터를 서버에 HTTP GET 방식으로 전송 후 서버 측 응답을 JSON 형식으로 받을 때 사용 |
$.getScript | Ajax를 이용하여 외부 자바스크립트를 불러올 때 사용 |
.ajaxStop(function(){....}) | 비동기 방식으로 서버에 응답 요청이 완료 되었을 때 함수 실행 |
.ajaxSuccess(function(){....}) | ajax 요청이 성공적으로 완료되면 함수 실행 |
.ajaxComplete(function(){....}) | ajax 통신이 완료되면 함수 실행 |
load() 메서드
사용자가 지정한 URL 주소에 데이터를 전송하고 외부 콘텐츠를 요청하여 가져올 때 사용한다.
$(요소 선택).load(url , data, 콜백함수) -> data, 콜백함수 생략 가능
url : 외부 컨텐츠를 요청할 외부 주소
data : 전송할 데이터
콜백함수 : 전송이 완료되면 실행될 코드
$.ajax() 메서드
사용자가 지정한 URL 경로에 파일의 데이터를 전송하고 입력한 URL 경로 파일로부터 요청한 데이터를 불러온다.
불러올 수 있는 외부 데이터로 JSON, TEXT, XML, HTML 형식 등이 있다.
$.ajax({
url : "전송 페이지" (action url),
type : "전송 방식" (GET, POST),
data : "전송할 데이터",
dataType : "요청한 데이터 형식" ("json" , "jsonp" , "html", "text", "xml"),
success : function(data) {
전송에 성공하면 실행될 코드;
},
error : function() {
전송에 실패하면 실행될 코드;
}
});
$.ajax() 메서드의 옵션
종류 | 설명 |
async | 통신을 동기 또는 비동기 방식으로 설정하는 옵션, 기본값은 비동기 통신 방식인 true로 설정 |
beforeSend | 요청하기 전에 함수를 실행하는 이벤트 핸들러 |
cache | 요청한 페이지를 인터넷에 캐시(저장)할지의 여부를 설정, 기본값은 true |
complete | Ajax가 완료되었을 때 함수를 실행하는 이벤트 핸들러 |
contentType | 서버로 전송할 데이터의 content-type을 설정, 기본값은 application/x-www-form-urlencoded |
data | 서버로 전송할 데이터를 지정 |
dataType | 서버에서 받아올 데이터의 형식을 지정, 생략하면 요청한 자료에 맞게 자동으로 형식이 설정 |
error | 통신에 문제가 발생할 경우 함수를 실행 |
success | 통신이 정상적으로 일어났을 경우 이벤트 핸들러를 실행 |
timeout | 통신 시간을 제한 (시간단위 : 밀리초) |
type | 데이터를 전송할 방식(get/post)을 설정 |
url | 데이터를 전송할 페이지를 설정, 기본값은 현재 페이지 |
username | HTTP 액세스를 할 때 인증이 필요할 경우 사용자 이름을 지정 |
Ajax 전송 데이터 가공 메서드
종류 | 사용 | 설명 |
serialize() | $("form").serialize(); | 사용자가 입력 요소에 값을 입력한 데이터의 전송방식을 'name1=value1 & name2=value2, ....' 와 같은 쿼리 스트링 형식의 데이터로 변환해 반환 |
serializeArray() | $("form").serializeArray() | 사용자가 입력 요소에 값을 입력한 데이터의 전송 방식을 [{name1 : value1, {name2 : value2}] 와 같은 배열 객체로 변환해 반환 |
$.param() | $.param(obj) | {name1 : value1, name2 : value2}와 같이 작성된 객체를 가공해 'name1=value1 & name2=value2,...' 와 같은 쿼리 스트링 형식의 데이터로 변환해 반환 |
JSON.parse() | JSON.parse('{"name" : "value"}'); | 객체 형태로 작성한 문자열 데이터를 객체로 가공하여 반환 |
JSON.stringify() | JSON.stringify({"name1" : "value1", "name2" : "value2"}) | 객체를 문자열 데이터로 가공하여 반환 |
'Web' 카테고리의 다른 글
[jQuery] 애니메이션 & 효과 메서드 (0) | 2020.09.16 |
---|---|
[jQuery] 그룹 이벤트 등록 및 삭제 (0) | 2020.09.15 |
[jQuery] 포커스 이벤트 , 키보드 이벤트 , change() (0) | 2020.09.14 |
[jQuery] 제이쿼리 마우스 이벤트 (0) | 2020.09.11 |
[jQuery] 제이쿼리 이벤트 등록, 제거 (0) | 2020.09.10 |