-
Notifications
You must be signed in to change notification settings - Fork 0
javascript_in_depth_13
์๋ฐ์คํฌ๋ฆฝํธ๋ ํจ์ ๊ธฐ๋ฐ์ผ๋ก ๋์ํ๊ธฐ ๋๋ฌธ์ ์ด๋ฒคํธ ๊ธฐ๋ฐ์ผ๋ก ๋์ํ๋ ๋ถ๋ถ๋ค์ ์ฝ๋ฐฑ ํจ์๋ฅผ ํตํด์ ๋ค์ํ๊ฒ ๋์ํ๊ณ ์๋ค. ํนํ ์๋ฐ์คํฌ๋ฆฝํธ๋ ๋ณ์๋ ์ธ์๋ก ํจ์๋ฅผ ์ฝ๊ฒ ์ค์ ํ๊ณ ์ ๋ฌํ ์ ์์ด์ ๋ ์ฝ๊ฒ ์ฝ๋ฐฑ ํจ์๋ฅผ ํ์ฉํ ์ ์๋ค.
์ฝ๋ฐฑ ํจ์์ ๋ํ์ ์ธ ์ฌ์ฉ์ฒ๋ ๋ฐ๋ก ์ด๋ฒคํธ ํธ๋ค๋ฌ์ด์ง๋ง, ์ผ๋ฐ์ ์ธ ์๋ฐ์คํฌ๋ฆฝํธ ์ฒ๋ฆฌ ๋ก์ง ์ค์์๋ ์ด๋ฌํ ์ฝ๋ฐฑ ํจํด์ ์ผ์ฉํด์ ํด๋น ํจ์์ ํธ์ถ์ด ๋๋๊ณ ๋ ๋ค์ ์ฒ๋ฆฌํ ์ ์๋๋ก ํ์ฉํ ์ ์๋ค. ํนํ ํ๋์ ๊ณตํต ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ด์ฉํ ๋ ์ฝ๋ฐฑ ํจ์๋ฅผ ๋๊ฒจ์ฃผ๋ ๊ฒ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํ์ฅ์ฑ์ ๋์ผ ์ ์๋ค.
์ฝ๋ฐฑ ํจ์๊ฐ ๊ฒน์น๋ฉด ์์ค๋ฅผ ์ฝ๋ ๊ฒ ์์ฒด๊ฐ ๋ถ๊ฐ๋ฅํ ์ ๋๋ก ๋ณต์กํด์ง๋ฏ๋ก ์ ๋นํ๊ฒ ํจ์๋ช
์ ๋ฐ๋ก ๋ถ๋ฆฌํด์ ์์ค๋ฅผ ์ ๋ฆฌํ๋๊ฒ์ด ์ฝ๋ฐฑ ํจํด์์ ์ฃผ์ํ ์ ์ด๋ค.
// XMLHttpRequest์ ์ฝ๋ฐฑ ํจํด ํ์ฉ
(function () {
function ajax(method, url, data, callback) {
var xhr = new XMLHttpRequest();
xhr.open(method, url);
xhr.onload = function () {
if (xhr.status === 200) {
callback.call(this, xhr.responseText);
}
}
xhr.send(data);
}
ajax("POST", "/login", "id=hello&password=world", function (responseText) {
if (responseText === "Success") {
alert("Success to login!");
ajax("GET", "/userInfo", "id=hello", displayUserInfo);
} else {
alert("Failed to login");
}
});
function displayUserInfo(responseText) {
document.getElementById("userInfo").innerHTML = responseText;
}
}());