Kimsora✨
article thumbnail
320x100
반응형
원래는 리액트쿼리에 대해 공부하려 했는데 어느 글에서  리액트쿼리를 알기이전에 AJAX에 알아야 한다고 하여 양심에 찔려 이글을 정리해보려고 한다 


AJAX (Asynchronous Javascript And XML)

 =>자바스크립트를 통해서 서버에 데이터를 요청하는 것

  • AJAX는 XML에 기반한 종합 기술로  Asynchronous Javascript And Xml(비동기식 자바스크립트와 xml)의 약자이다
  • 자바스크립트로 HTTP 요청을 보내서 XML 응답을 받아 사용하는 기술
  •  AJAX는 하나의 독립된 기술이 아니다.
AJAX
화면 HTML + CSS 로 구성 및 작성
화면에 대한 조작과 상호 작용 문객체모델(Document Object Model : DOM)로 처리
데이터 교환 XML 형식
데이터 변환과 검색 XML 기술인 XSL과 XPath 를 사용
비동기 통신 웹 브라우저 안에 내장되어 있는 XMLHttpRequest 객체를 사용

 

 

AJAX의 진행과정

 

XMLHttpRequest Object를 만든다

  • request를 보낼 준비를 브라우저에게 시키는 과정
  • 이것을 위해서 필요한 method를 갖춘 object가 필요하다

callback 함수를 만든다.

  • 서버에서 response가 왔을 때 실행시키는 함수
  • HTML 페이지를 업데이트 함

Open a request

  • 서버에서 response가 왔을 때 실행시키는 함수
  • HTML 페이지를 업데이트 함

send the request

 

AJAX의 장점

  • 웹페이지의 속도향상
  • 서버의 처리가 완료될 때까지 기다리지 않고 처리가 가능하다.
  • 서버에서 Data만 전송하면 되므로 전체적인 코딩의 양이 줄어든다.
  • 기존 웹에서는 불가능했던 다양한 UI를 가능하게 해준다. ( Flickr의 경우, 사진의 제목이나 태그를 페이지의 리로드 없이 수정할 수 있다.)

AJAX의 단점

  • 히스토리 관리가 되지 않는다.
  • 페이지 이동없는 통신으로 인한 보안상의 문제가 있다.
  • 연속으로 데이터를 요청하면 서버 부하가 증가할 수 있다.
  • XMLHttpRequest를 통해 통신하는 경우, 사용자에게 아무런 진행 정보가 주어지지 않는다. (요청이 완료되지 않았는데 사용자가 페이지를 떠나거나 오작동할 우려가 발생하게 된다.)
  • AJAX를 쓸 수 없는 브라우저에 대한 문제 이슈가 있다.
  • HTTP 클라이언트의 기능이 한정되어 있다.
  • 지원하는 Charset이 한정되어 있다.
  • Script로 작성되므로 디버깅이 용이하지 않다.
  • 동일-출처 정책으로 인하여 다른 도메인과는 통신이 불가능하다. (Cross-Domain문제)

axios &fetch API

 

axios fetch
구형 브라우저를 지원한다 JavaScript의 내장 라이브러리이기 때문에 import 하지 않고 사용할 수 있다.
응답 시간 초과를 설정하는 방법이 잇다 라이브러리의 업데이트에 따른 에러 방지가 가능하다.
(React Native의 경우 업데이트가 잦아서 라이브러리가 쫓아오지 못하는 경우가 많은데, fetch의 경우 이를 방지할 수 있다.)
JSON 데이터 자동변환이 가능하다. 네트워크 에러가 발생했을 때 기다려야한다. (response timeout API 제공X)
node.js에서의 사용이 가능하다. 지원하지 않는 브라우저가 있다.
request aborting(요청 취소)가 가능하다. return값은 Promise 객체 형태이다.
catch에 걸렸을 때, .then을 실행하지 않고, console창에
해당 에러 로그를 보여준다.
 
return값은 Promise 객체 형태이다.  

 

728x90
반응형

'Javascript' 카테고리의 다른 글

드래그앤 드롭(js)  (6) 2023.03.07
간단한 js 무한스크롤과 이벤트위임  (6) 2023.03.03
location.href / location.replace()  (0) 2022.11.29
번들링 & 웹팩  (0) 2022.11.23
비동기처리 (콜백함수, Promise, async/await)  (0) 2022.11.02
profile

Kimsora✨

@sorarar

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

검색 태그

WH