Ajax(Asynchronous JavaScript and XML)
Ajax란?
Ajax는 JavaScript를 이용하여 비동기식으로 클라이언트와 서버가 데이터를 주고받는 통신 방식이다.
간단히 말하면, 서버와 통신하기 위해 XMLHttpRequest 객체를 사용하는 것을 말한다.
AJAX의 강력한 특징은 페이지 전체를 리프레쉬 하지 않고서도 수행 되는 "비동기성"이다. 이러한 비동기성을 통해 사용자의 Event가 있으면 전체 페이지가 아닌 일부분만을 업데이트 할 수 있게 해준다. 즉, Ajax를 이용하면 백그라운드 영역에서 서버와 통신하여, 그 결과를 웹 페이지의 일부분에만 표시할 수 있다.
즉, 자바스크립트를 통해서 서버에 데이터를 비동기 방식으로 요청하는 것이다.
비동기 방식이란?
요청을 보낸 후 응답(=결과)와는 상관없이 다음방식이 동작하는 방식이다.
결과가 주어지는데 시간이 걸리더라도 그 시간 동안 다른 작업을 할 수 있으므로 자원을 효율적으로 사용할 수 있다.
비동기식은 할일이 끝나면 콜백 함수를 함께 호출한다. But, 이 응답은 처리 결과에 대한 응답이 아니라 요청에 대한 확인 동작이다. 호출받은 함수는 처리가 끝나면 요청한 함수를 호출하여 처리 결과를 전달하게 된다.
CallBack 함수란?
어떤 이벤트가 발생했거나 특정 시점에 도달했을 때 시스템에서 호출하는 함수
동기 방식이란?
서버에서 요청을 보냈을 때 응답이 돌아와야 다음 동작을 수행할 수 있다. 즉 A작업이 모두 진행 될때까지 B작업은 대기해야한다.
Ajax의 주요 특징
1. 페이지 새로고침 없이 서버에 요청
JavaScript를 이용하여 서버로 보내는 HTTP request를 만들기 위해서는 그에 맞는 기능을 제공하는 Object의 인스턴스가 필요하다. XMLHttpRequest가 그러한 Object의 한 예이다.
2. 서버로부터 데이터를 받고 작업을 수행
Ajax로 주고받을 수 있는 데이터 형식
1) JSON
2) XML
3) HTML
4) 텍스트 파일 등
Ajax의 장점
1) 전체 페이지를 갱신하지 않고 일부분만 업데이트가 가능하다
2) 사용자에게 즉각적인 반응과 풍부한 UI경험 제공 가능하다
3) ActiveX나 플러그인 프로그램 설치 없이 이용 가능
4) Javascript방식, jQuery방식으로 구현 가능
Ajax의 한계
1) Ajax는 JavaScript이므로 브라우저에 따른 크로스 브라우저 처리 필요
2) 오픈 소스로 차별화가 어려움
3) 연속적인 데이터 요청 시 서버 부하 증가하여 페이지가 느려짐
4) 페이지 내 복잡도가 증가하여 에러 발생 시 디버깅이 어려움
출처 : http://tcpschool.com/ajax/ajax_intro_basic(티씨피스쿨), https://developer.mozilla.org/ko/docs/Web/Guide/AJAX/Getting_Started,
https://www.hanumoka.net/2018/10/24/javascript-20181024-javascript-callback/,
https://jieun0113.tistory.com/73,
https://velog.io/@daybreak/%EB%8F%99%EA%B8%B0-%EB%B9%84%EB%8F%99%EA%B8%B0-%EC%B2%98%EB%A6%AC 동기 비동기 차이,
'Study' 카테고리의 다른 글
[JAVA]라이브러리와 프레임워크 차이 (0) | 2022.02.09 |
---|---|
[JAVA]제네릭이란? 사용 방법, 사용 이유 (0) | 2021.12.28 |
[JAVA]JVM과 JAVA 실행 방식 (0) | 2021.12.27 |
[JAVA]Static vs Final 차이(cf. Finally, Finallize()) (0) | 2021.12.26 |
[Study / JSPProject]폴더 (0) | 2021.10.21 |