AJAX(Asynchronous JavaScript And XML)๋, ์๋ฐ์คํฌ๋ฆฝํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ค ํ๋์ด๋ค. ๋ธ๋ผ์ฐ์ ๊ฐ ๊ฐ๊ณ ์๋XMLHttpRequest๊ฐ์ฒด๋ฅผ ์ด์ฉํด์ ์ ์ฒด ํ์ด์ง๋ฅผ ์๋ก ๊ณ ์น์ง ์๊ณ ๋ ํ์ด์ง์ ์ผ๋ถ๋ง์ ์ํ ๋ฐ์ดํฐ๋ฅผ ๋ก๋ํ๋ ๊ธฐ๋ฒ์ด๋ค.- ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ ๋น๋๊ธฐ ํต์ , ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ์
XML ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๊ธฐ์ ์ด๋ค. - ์ฌ๊ธฐ์
XML์ด ์๋ ์ด์ ๋ ๊ณผ๊ฑฐ์๋ ๋ฐ์ดํฐ ํฌ๋งท์ผ๋ก XML์ ๋ง์ด ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ด๋ค. ์์ฆ์๋JSON์ ๋ ๋ง์ด ์ฌ์ฉํ๋ค.
- ๊ธฐ๋ณธ์ ์ผ๋ก
HTTP ํ๋กํ ์ฝ์ ํด๋ผ์ด์ธํธ์ชฝ์์ req๋ฅผ ๋ณด๋ด๊ณ ์๋ฒ๋ก๋ถํฐ res๋ฅผ ๋ฐ์ผ๋ฉด ์ด์ด์ก๋ ์ฐ๊ฒฐ์ด ๋๊ธฐ๊ฒ ๋์ด ์๋ค. ๊ทธ๋์ ํ๋ฉด์ ๋ด์ฉ์ ๊ฐฑ์ ํ๊ธฐ ์ํด์๋ ๋ค์ req๋ฅผ ๋ณด๋ด๊ณ res๋ฅผ ๋ฐ์ผ๋ฉด์ ํ์ด์ง ์ ์ฒด๋ฅผ ๊ฐฑ์ ํ๋ค. - ์ด๋ด ๊ฒฝ์ฐ, ํ์ด์ง์ ์ผ๋ถ๋ถ๋ง ๊ฐฑ์ ํ๋ ๊ฒฝ์ฐ์๋ ํ์ด์ง ์ ์ฒด๋ฅผ ๋ค์ ๋ก๋ํด์ผํ๋๋ฐ, ์์ฒญ๋
์์ ๋ญ๋น์์๊ฐ ๋ญ๋น๋ฅผ ์ด๋ํ๋ค. - ํ์ง๋ง
Ajax๋ html ํ์ด์ง ์ ์ฒด๊ฐ์๋ ์ผ๋ถ๋ถ๋ง ๊ฐฑ์ ํ ์ ์๋๋กXMLHttpRequest๊ฐ์ฒด๋ฅผ ํตํด ์๋ฒ์ request๋ฅผ ํ๋ค. ์ด ๊ฒฝ์ฐ JSON์ด๋ XML ํํ๋ก ํ์ํ ๋ฐ์ดํฐ๋ง ๋ฐ์ ๊ฐฑ์ ํ๊ธฐ ๋๋ฌธ์ ๊ทธ๋งํผ์ ์์๊ณผ ์๊ฐ์ ์๋ ์ ์๋ค.
- ์นํ์ด์ง์ ์๋ ํฅ์
- ํ์ด์ง๋ฅผ ์ ํํ์ง ์๊ณ ๋น ๋ฅด๊ฒ ํ๋ฉด ์ผ๋ถ๋ถ๋ง ์ ๋ฐ์ดํธ ํ ์ ์๋ค.
- ์๋ฒ์ ์ฒ๋ฆฌ๊ฐ ์๋ฃ ๋ ๋๊น์ง ๊ธฐ๋ค์ง๋ฆฌ ์๊ณ ์ฒ๋ฆฌ ๊ฐ๋ฅ(๋น๋๊ธฐ ์ฒ๋ฆฌ)
- ์๋ฒ์์ Data๋ง ์ ์กํ๋ฉด ๋๋ฏ๋ก ์ ์ฒด์ ์ธ ์ฝ๋ฉ์ ์์ด ์ค์ด๋ฆ
- History ๊ด๋ฆฌ๊ฐ ์๋๋ค. ์ฆ, ๋ณด์์ ์ข ๋ ์ ๊ฒฝ์ ์จ์ผ ํ๋ค.
- ์ฐ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ๋ฉด ์๋ฒ ๋ถํ๊ฐ ์ฆ๊ฐํ ์ ์๋ค.
- XMLHttpRequest๋ฅผ ํตํด ํต์ ํ๋ ๊ฒฝ์ฐ ์ฌ์ฉ์์๊ฒ ์๋ฌด๋ฐ ์งํ ์ ๋ณด๊ฐ ์ฃผ์ด์ง์ง ์๋๋ค. ๊ทธ๋์ ์์ฒญ์ด ์๋ฃ๋์ง ์์๋๋ฐ ์ฌ์ฉ์๊ฐ ํ์ด์ง๋ฅผ ๋ ๋๊ฑฐ๋ ์ค์๋ํ ์ฐ๋ ค๊ฐ ์๋ค.
- ์ง์ํ์ง ์๋ ๋ธ๋ผ์ฐ์ ๊ฐ ์๋ค.
- ์ฌ์ฉ์์ ์ํ ์์ฒญ ์ด๋ฒคํธ ๋ฐ์
- ์์ฒญ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๋ฉด ์ด๋ฒคํธ ํธ๋๋ฌ์ ์ํด ์๋ฐ์คํฌ๋ฆฝํธ๊ฐ ํธ์ถ
- ์๋ฐ์คํฌ๋ฆฝํธ๋ XMLHttpRequest ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ์ฌ ์๋ฒ๋ก ์์ฒญ์ ๋ณด๋. ์ด๋, ๋ธ๋ผ์ฐ์ ๋ ์์ฒญ์ ๋ณด๋ด๊ณ ๋์, ์๋ฒ์ ์๋ต์ ๊ธฐ๋ค๋ฆด ํ์ ์์ด ๋ค๋ฅธ ์์
์ ์ฒ๋ฆฌ(
๋น๋๊ธฐ ์ฒ๋ฆฌ) - ์๋ฒ๋ ์ ๋ฌ๋ฐ์ XMLHttpRequest ๊ฐ์ฒด๋ฅผ ๊ฐ์ง๊ณ Ajax ์์ฒญ์ ์ฒ๋ฆฌ
- ์ 6. ์๋ฒ๋ ์ฒ๋ฆฌํ ๊ฒฐ๊ณผ๋ฅผ HTML, XML ๋๋ JSON ํํ์ ๋ฐ์ดํฐ๋ก ์น ๋ธ๋ผ์ฐ์ ์ ์ ๋ฌ.
- ์๋ฒ๋ก๋ถํฐ ์ ๋ฌ๋ฐ์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ์น ํ์ด์ง์ ์ผ๋ถ๋ถ๋ง์ ๊ฐฑ์ ํ๋ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ํธ์ถ
- ๊ฒฐ๊ณผ์ ์ผ๋ก ์น ํ์ด์ง์ ์ผ๋ถ๋ถ๋ง์ด ๋ค์ ๋ก๋ฉ๋์ด ํ์๋๋ค.
- ์ผ๋ฐ์ ์ผ๋ก
XMLHttpRequest๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ์ฌ ์ธ์คํด์ค๋ฅผ ๋ง๋ค์ด ์ธ์คํด์ค์open(),send()๋ฉ์๋๋ฅผ ์ด์ฉํ๋ค.
let ourRequest = new XMLHttpRequest();
ourRequest.open(
"GET",
"https://learnwebcode.github.io/json-example/animals-1.json"
);
ourRequest.onload = () => {
let ourData = JSON.parse(ourRequest.responseText);
console.log(ourData[0]);
};
ourRequest.send();- ES6๋ถํฐ ์๋ก ๋์
๋
fetch๋ฅผ ์ฌ์ฉํด์ ์์ฒญ์ ํ ์๋ ์๋ค. IE๋ฅผ ์ง์ํ์ง ์๋ ๋ค๋ ์ ์ ์ ์ธํ๊ณ ๋XMLHttpRequest๋ณด๋ค ํจ์ฌ ์ง๊ด์ ์ด๋ค. - ES6์์ ํ์ค์ด ๋์๊ณ ,
Promise๋ฅผ ๋ฆฌํดํ๋ค. - ์๋ต ๊ฐ์ฒด๋ json(), blob()๊ณผ ๊ฐ์ ๋ด์ฅ ๋ฉ์๋๋ก body๋ฅผ ์ถ์ถํด๋ด๊ณ ์ด๋ ๋ค์
Promise๋ฅผ ๋ฆฌํดํ๋ค.
fetch("https://learnwebcode.github.io/json-example/animals-1.json")
.then(res => res.json())
.then(resJson => console.log(resJson));https://github.com/baeharam/Must-Know-About-Frontend/blob/master/Notes/javascript/ajax.md
http://tcpschool.com/ajax/ajax_intro_works
https://coding-factory.tistory.com/143