๐ป
JavaScript ์ ์ดํด - [AJAX] JSON ๊ฐ์ฒด ๋ค๋ฃจ๊ธฐ ๋ณธ๋ฌธ
Ajax๋?
AJAX๋ ๋น๋๊ธฐ ์๋ฐ์คํฌ๋ฆฝํธ์ XML (Asynchronous JavaScript And XML)์ ๋งํฉ๋๋ค. ๊ฐ๋จํ ๋งํ๋ฉด, ์๋ฒ์ ํต์ ํ๊ธฐ ์ํด XMLHttpRequest ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๋งํฉ๋๋ค. JSON, XML, HTML ๊ทธ๋ฆฌ๊ณ ์ผ๋ฐ ํ ์คํธ ํ์ ๋ฑ์ ํฌํจํ ๋ค์ํ ํฌ๋งท์ ์ฃผ๊ณ ๋ฐ์ ์ ์์ต๋๋ค. AJAX์ ๊ฐ๋ ฅํ ํน์ง์ ํ์ด์ง ์ ์ฒด๋ฅผ ๋ฆฌํ๋ ์ฌ ํ์ง ์๊ณ ์๋ ์ํ ๋๋ "๋น๋๊ธฐ์ฑ"์ ๋๋ค. ์ด๋ฌํ ๋น๋๊ธฐ์ฑ์ ํตํด ์ฌ์ฉ์์ Event๊ฐ ์์ผ๋ฉด ์ ์ฒด ํ์ด์ง๊ฐ ์๋ ์ผ๋ถ๋ถ๋ง์ ์ ๋ฐ์ดํธ ํ ์ ์๊ฒ ํด์ค๋๋ค.
AJAX์ ์ฃผ์ ๋๊ฐ์ง ํน์ง
- ํ์ด์ง ์๋ก๊ณ ์นจ ์์ด ์๋ฒ์ ์์ฒญ
- ์๋ฒ๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ๋ฐ๊ณ ์์ ์ ์ํ
Ajax๋ ์ธ์ด๋ ํ๋ ์ ์ํฌ๊ฐ ์๋ ๊ตฌํํ๋ ๋ฐฉ์์ ์๋ฏธํฉ๋๋ค. ๋ฐ์ดํฐ๋ฅผ ์ด๋ํ๊ณ ํ๋ฉด์ ๊ตฌ์ฑํ๋๋ฐ ์์ด์ ์น ํ๋ฉด์ ๊ฐฑ์ ํ์ง ์๊ณ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์๋ฒ๋ก ๋ณด๋ด๊ณ ๊ฐ์ ธ์ค๋ ๋ฐฉ๋ฒ์ ๋๋ค. ํ๋ฉด ๊ฐฑ์ ์ด ์์ด์ ์ฌ์ฉ์ ์ ์ฅ์์๋ ๋งค์ฐ ํธ๋ฆฌํ๊ณ ๋น ๋ฅด๊ฒ ์์ ์ ์ฒ๋ฆฌํ๋ ๊ฒ์ฒ๋ผ ๋๋ผ๊ฒ ํฉ๋๋ค. ํ์ง๋ง, ๋์ ์ผ๋ก ํ๋ฉด์ ๊ตฌ์ฑํ๋ ๋งํผ ๊ฐ๋ฐ์์ ๊ตฌํ์ ๋ณต์กํด ์ง๋๋ค.
JavaScript ์์์ Ajax ๊ตฌํ ๋ฐฉ๋ฒ
https://developer.mozilla.org/ko/docs/Web/Guide/AJAX/Getting_Started
json01.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src="json01.js"></script>
</head>
<body onload="toServer()">
<div id="disp"></div>
</body>
</html>
json01.js
/**
*
*/
var xhr = null;
var arr = new Array();
function toServer(){
if(window.XMLHttpRequest){
xhr = new XMLHttpRequest;
}else{
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
xhr.open("GET", "json01.txt", true);
xhr.send();
xhr.onreadystatechange = resultProcess;
}
function resultProcess(){
if(xhr.readyState==4 && xhr.status==200){
arr.push(xhr.responseText);
//alert(arr);
var obj = JSON.parse(xhr.responseText);
var disp = document.getElementById("disp");
var ul = document.createElement("ul");
var liNode1 = document.createElement("li");
liNode1.innerHTML = obj.name;
var liNode2 = document.createElement("li");
liNode2.innerHTML = obj.age;
var liNode3 = document.createElement("li");
liNode3.innerHTML = obj.ki;
ul.appendChild(liNode1);
ul.appendChild(liNode2);
ul.appendChild(liNode3);
disp.appendChild(ul);
}
}
json01.txt
์๋ฒ์์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ ๋ jsonํ์ผ๋ก ๋ฐ์ง๋ง ์ฌ๊ธฐ์ ์ฐ์ต์ ์ํด jsonํ์์ผ๋ก .txt ํ์ผ์ ์์ฑํ์๋ค.
{
"name": "ํ๊ธธ๋",
"age": "10",
"ki": "170.5"
}
json02.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src="json02.js"></script>
</head>
<body onload="toServer()">
<div id="disp"></div>
</body>
</html>
json02.js
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src="json02.js"></script>
</head>
<body onload="toServer()">
<div id="disp"></div>
</body>
</html>
json02.txt
๊ฐ์ฒด๋ {}์ ๋ฃ์ด์ฃผ๊ณ , ๋ฐฐ์ด์ []์ ๋ด์์ค๋ค.
{
"name": "ํ๊ธธ๋",
"age" : "30",
"cars":[
{ "name": "Ford",
"model": ["Fiesta", "Focus", "Mustang"]
},
{ "name": "BMW",
"model": ["320", "X3", "X5"]
},
{ "name": "hyundai",
"model": ["sonata", "santafe", "avante"]
}
]
}
'KITRI > JAVASCRIPT' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
JavaScript ์ ์ดํด - [AJAX] ํ์ค ๋ต๊ธ ๋ฌ๊ธฐ(CRUD) (0) | 2020.07.16 |
---|---|
JavaScript ์ ์ดํด - [AJAX] XHR(XMLHttpRequest) (0) | 2020.07.16 |
JavaScript ์ ์ดํด - JS/jQuery ์๋์์ฑ ํ๋ฌ๊ทธ์ธ ์ค์น (0) | 2020.07.14 |
JavaScript ์ ์ดํด - ์ค๋ธ์ ํธ(Object) (0) | 2020.06.05 |
JavaScript ์ ์ดํด - ๊ธฐ๋ณธ ๊ฐ๋ ๋ฐ ๋ฌธ๋ฒ/ ์ด๋ฒคํธ(Event) / ํจ์(Function) (0) | 2020.06.04 |