AJAX (Asynchronous Javascript And XML)
๋น๋๊ธฐ์ ์น ์๋น์ค๋ฅผ ๊ฐ๋ฐํ ๋ ์ฌ์ฉํ๋ ๊ธฐ๋ฒ์ผ๋ก, ํ์ด์ง ์ด๋ ์์ด ์๋ฒ์ ์์ฒญ์ ๋ณด๋ด๊ณ ์๋ต์ ๋ฐ๋ ๊ธฐ์ ์ด๋ค.
AJAX๋ฅผ ์ฌ์ฉํ๋ ์ด์
ํ์ด์ง์ ์ผ๋ถ๋ถ๋ง ๊ฐฑ์ ํ ๊ฒฝ์ฐ์๋ ํ์ด์ง ์ ์ฒด๋ฅผ ๋ค์ ๋ก๋ํด์ผํ๋๋ฐ, ์ด๋ ์์ฒญ๋ ์์๊ณผ ์๊ฐ์ด ๋ญ๋น๋๋ค.
ํ์ง๋ง ajax๋ html ํ์ด์ง ์ ์ฒด๊ฐ์๋ ์ผ๋ถ๋ถ๋ง ๊ฐฑ์ ํ ์ ์๋๋ก XMLHttpRequest๊ฐ์ฒด๋ฅผ ํตํด ์๋ฒ์ requestํ๋ค.
์ด ๊ฒฝ์ฐ Json์ด๋ xmlํํ๋ก ํ์ํ ๋ฐ์ดํฐ๋ง ๋ฐ์ ๊ฐฑ์ ํ๊ธฐ ๋๋ฌธ์ ๊ทธ๋งํผ์ ์์๊ณผ ์๊ฐ์ ์๋ ์ ์๋ค.
AJAX์ ์ฅ๋จ์
์ฅ์ |
|
๋จ์ |
|
AJAX ๊ตฌํ๋ฐฉ์
1) axios - npm๊ฒ์๋ฌผ
- javascript ๋ผ์ด๋ธ๋ฌ๋ฆฌ
npm install axios
- ๋ธ๋ผ์ฐ์ ์ ๋ฒ์ ์ ์๊ด์์ด ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค.
- node.js์์์ ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค.
- return ๊ฐ์ Promise ๊ฐ์ฒด ํํ์ด๋ค.
axios.post('request url', data)
.then(function (res) {
//...
})
2) fetch
- javascript ๋ด์ฅ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๊ธฐ ๋๋ฌธ์ importํ์ง ์๊ณ ์ฌ์ฉํ ์ ์๋ค.
- ์ง์ํ์ง ์๋ ๋ธ๋ผ์ฐ์ ์ ๋ฒ์ ์ด ์๊ณ , ํธํ์ํค๋ ค๋ฉด polyfill์ ์ฌ์ฉํด ํธํ์ฑ์ ๋ง์ถฐ์ผ ํ๋ค.
- ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ ๋ฐ์ดํธ์ ๋ฐ๋ฅธ ์๋ฌ ๋ฐฉ์ง๊ฐ ๊ฐ๋ฅํ๋ค.
- response timeout API ์ ๊ณต๋์ง ์๊ธฐ ๋๋ฌธ์, ๋คํธ์ํฌ ์๋ฌ๊ฐ ๋ฐ์ํ์ ๊ฒฝ์ฐ์ ๊ธฐ๋ค๋ ค์ผ ํ๋ค.
- return ๊ฐ์ Promise ๊ฐ์ฒด ํํ์ด๋ค.
fetch('request url', {
method: 'POST',
body,
}).then((res) => {
//...
});
3) fetch์ axios์ ์ฐจ์ด์
์ ์ ๋ฆฌ๋ ๋ธ๋ก๊ทธ => blog.logrocket.com/axios-or-fetch-api/