반응형
AJAX: Asynchronous JavaScript And XML
- AJAX는 Javascript와 XML을 이용한 비동기적 정보 교환 기법입니다.
- AJAX를 이용함으로 사용자가 서버에 자료를 요청할 때 화면 전환 없이 요청한 자료를 받을 수 있습니다.
- 또한 사용자가 기다릴 필요 없이 다른 작업을 바로 수행할 수 있습니다.
Ajax 기초 메서드
종류 | 설명 |
load() | (데이터를 전송하여) 외부 콘텐츠를 가져올 때 사용 |
$.ajax() | 데이터를 서버에 HTTP POST, GET방식으로 전송할 수 있음. HTML, XML, JSON, 텍스트 유형에 데이터를 요청할 수 있음. $.post(), $.get(), $.getJSON() 메소드의 기능을 하나로 합쳐 놓은 통합적인 메서드. |
$.post() | 데이터를 서버에 HTTP POST 방식으로 전송한 후 서버 측의 응답을 받을 때 사용 |
$.get() | 데이터를 서버에 HTTP GET 방식으로 전송한 후 서버 측의 응답을 받을 때 사용 |
$.getJSON() | 데이터를 서버에 HTTP GET 방식으로 전송한 후 서버 측의 응답을 JSON 형식으로 받을 때 사용 |
$.getScript() | Ajax를 이용하여 외부 자바스크립트를 불러옴 ex) $("button").click(function(){$.getScript("demo_ajax_script.js");}); |
.ajaxStop(function(){...}) | 비동기 방식으로 서버에 응답 요청이 완료되었을 때 함수가 실행됨 |
.ajaxSuccess(function(){...}) | ajax 요청이 성공적으로 완료되면 함수가 실행됨 |
.ajaxComplete(function(){...}) | ajax 통신이 완료되면 함수가 실행됨 |
load()
- $(요소 선택).load(url, data, 콜백 함수);
- url - 외부 콘텐츠를 요청할 외부 주소 입력
- data - 전송할 데이터 입력 (생략 가능)
- 콜백 함수 - 전송이 완료되면 실행될 함수 (생략 가능)
$.ajax()
$.ajax({ url: "URL", type: "get, post 방식", data: "전송할 데이터", dataType: "요청한 데이터 형식 ("html", "xml", "text", "json", ...)", success: function(data) { // 전송 성공한 경우 실행될 코드 }, error: function() { // 전송 실패한 경우 실행될 코드 } });
$.ajax() 메서드의 옵션
종류 | 설명 |
async | 통신을 동기 또는 비동기 방식으로 설정하는 옵션이다. 기본값은 비동기 통신 방식인 true로 설정되어 있다. 만일 비동기 방식으로 설정되어 있다면 사용자 컴퓨터에서 서버로 데이터를 전송하고 요청하는 동안에도 다른 작업을 할 수 있다. |
beforeSend | 요청하기 전에 함수를 실행하는 이벤트 핸들러이다. |
cache | 요청한 페이지를 인터넷에 캐시(저장)할지의 여부를 설정한다. 기본값은 true이다. |
complete | Ajax가 완료되었을 때 함수를 실행하는 이벤트 핸들러이다. |
contentType | 서버로 전송할 데이터의 content-type을 설정한다. 기본값은 application/x-www-form-ur-lencoded이다. |
data | 서버로 전송할 데이터를 지정한다. |
dataType | 서버에서 받아올 데이터의 형식을 지정한다. 생략하면 요청한 자료에 맞게 자동으로 형식이 설정된다. |
error | 통신에 문제가 발생했을 때 함수를 실행한다. |
success | Ajax로 통신이 정상적으로 이뤄지면 이벤트 핸들러를 실행한다. |
timeout | 통신시간을 제한한다. 시간 단위는 밀리초이다. |
type | 데이터를 전송할 방식(get/post)을 설정한다. |
url | 데이터를 전송할 페이지를 설정한다. 기본값은 현재 페이지이다. |
username | HTTP액세스를 할 때 인증이 필요할 경우 사용자 이름을 지정한다. |
Ajax 전송 데이터 가공 메서드 종류
종류 | 사용법 | 설명 |
serialize() | $("form").serialize(); | 사용자가 입력 요소에 값을 입력한 데이터의 전송 방식을 'name1=value1 & name2=value2, ... '와 같은 쿼리스트링 형식의 데이터로 변환해 반환한다. |
serializeArray() | $("form").serializeArray(); | 사용자가 입력요소에 값을 입력한 데이터의 전송 방식을 [{name1:value1},{name2:value2}]와 같은 배열 객체로 변환해 반환한다. |
$.param() | $.param(Object); | {name1 : value1, name2 : value2}와 같이 작성된 객체를 가공해 'name1=value1 & name2=value2, ... '와 같은 쿼리스트링 형식의 데이터로 변환해 반환한다. |
JSON.parse() | JSON.parse('{ "name":"value"}'); |
객체 형태로 작성한 문자열 데이터를 객체로 가공하여 반환한다. (입력하는 자료형이 객체형태일뿐, 문자열의 데이터를 입력하여 객체를 반환한다.) |
JSON.stringify() | JSON.stringify({ "name1":"value1", "name2":'value2"}) |
객체를 문자열 데이터로 가공하여 반환한다. |
반응형
'Front-End > JS' 카테고리의 다른 글
JS 프로토타입: 자바스크립트의 상속 (0) | 2023.05.15 |
---|---|
JS Fetch API를 이용한 Ajax 통신 (0) | 2023.05.02 |
JS JSON: JavaScript Object Notion (0) | 2023.05.02 |
JS JQuery ( + JQuery 사용 방법 ) (0) | 2023.05.01 |
JS Web API ( storage, fetch, geolocation ) (0) | 2023.04.28 |