basic/spring

[spring 09] Ajax

못지(Motji) 2021. 8. 10. 11:59

💡

∙ 동기 방식 : 서버에 신호를 보냈을때 응답이 돌아와야 다음 동작 수행 가능

∙ 비동기 방식 : 신호를 보냈을때 응답상태와 상관없이 다음 동작 수행 가능

Ajax (Asynchronous JavaScript and XML)

• 비동기 방식의 JS와 XML을 말함

• Ajax 사용이유 : 화면전환 없이 클라이언트와 서버간의 XML, JSON, 텍스트, HTML 등 정보교환을 하기 위해서

Ex) 페이스북 댓글과 게시판 댓글시 페이지 변환없이 등록, 지도

Ajax 관련 메소드

☑ load() : 사용자가 지정한 URL 주소에 데이터를 전송하고 외부 컨텐츠를 요청하여 가져올때 사용. 요청한 컨텐츠를 이용하여 선택한 요소의 내용 변경 가능

$("요소선택").load(url, data, 콜백함수)

▪ url : 외부 컨텐츠 요청할 외부 주소입력

▪ data : 전송할 데이터 (생략가능)

▪ 콜백함수 : 전송완료되면 콜백함수에 저장된 코드 실행 (생략가능)

${"#wrap").load("test.html");
// include 느낌

☑ $.ajax() : 사용자가 지정한 URL 경로에 파일 데이터 전송, 요청한 데이터를 선택한 요소에 불러옴. 불러올 수 있는 외부 데이터는 텍스트, HTML, XML, JSON 등. 통합적인 메소드( post(), get(), getJSON() )

중관호 안에 다양한 옵션입력가능, 옵션은 속성과 값으로 이루어짐

$.ajax({
	url : "요청주소",
    type : "전송방식",	// get 또는 post
	data : 전송할 데이터,
    contentType : "서버로 전송할 컨텐츠 타입",
    dataType : "요청해서 돌려받을 데이터의 타입",
    success : function(매개변수){	요청 성공시 실행될 코드	},
    error : function(매개변수){	에러발생시 실행될 코드	}
});

* 옵션들

▪ contentType : 서버로 전송할 데이터 content-type

▸defaylt 값 : applocation/x-www-form-urlencoded

▸application/json, text/plain

▪ async : 통신을 동기/비동기 방식으로 설정하는 옵션 default true 비동기방식

▪ cache : 요청한 페이지를 인터넷 캐시(저장)할지 여부 설정

▪ complete : Ajax완료시 함수 실행 이벤트 핸들러

▪ timeout : 통신시간 제한

▪ username : HTTP엑세스 할때 인증 필요한 경우 사용자 이름 지정

 

☑ 비동기방식 Ajax 전송 데이터 가공 메소드

▪ serialize() : $("form").serialize(); 📌

입력태그의 값들을

'name=value&name=value...' 와 같은 쿼리 스트링 형식으로 변환해주는 함수

▪ serializeArray() : $("form").serializeArray()

[{name:value},{name:value},...] 배열 객체 타입으로 변환해주는 함수

▪ $.param() : $.param(object)

{name:value},{name:value}

'name=value&name=value' 쿼리스트링으로 변환해주는 함수

▪ JSON.parse() : Json 형태로 작성한 '문자열'을 객체로 가공하여 리턴 📌

Json 형태 문자열 > Json 객체로 변환

'{"name":"value"}' > {"name":"value"}

▪ JSON.stringify() : Json 객체를 문자열로 가공해주는 함수 > 자바스크립트 객체를 json 형태의 문자열로 변환 📌

{"name":"value"} > '{"name":"value"}'

 

☑ $.post() : 서버에 post방식으로 요청할때 사용

☑ $.get() : 서버에 get방식으로 요청할때 사용

☑ $.getJSON() : 서버에 get방식으로 요청후 응답을 JSON으로 받을때 사용

☑ $.getScript)() : 외부 자바스크립트 불러올때

☑ $.ajaxSuccess(function(){}) : 통신 성공시

☑ $.ajaxComplete(function(){}) : 통신 완료시