Skip to content

javascript_in_depth_13

paul edited this page Apr 20, 2017 · 1 revision

๋””์ž์ธ ํŒจํ„ด ์‹ค์šฉ - ์ฝœ๋ฐฑ ํŒจํ„ด

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ํ•จ์ˆ˜ ๊ธฐ๋ฐ˜์œผ๋กœ ๋™์ž‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜์œผ๋กœ ๋™์ž‘ํ•˜๋Š” ๋ถ€๋ถ„๋“ค์€ ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด์„œ ๋‹ค์–‘ํ•˜๊ฒŒ ๋™์ž‘ํ•˜๊ณ  ์žˆ๋‹ค. ํŠนํžˆ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๋ณ€์ˆ˜๋‚˜ ์ธ์ž๋กœ ํ•จ์ˆ˜๋ฅผ ์‰ฝ๊ฒŒ ์„ค์ •ํ•˜๊ณ  ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์–ด์„œ ๋” ์‰ฝ๊ฒŒ ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋ฅผ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

ํ™œ์šฉ

์ฝœ๋ฐฑ ํ•จ์ˆ˜์˜ ๋Œ€ํ‘œ์ ์ธ ์‚ฌ์šฉ์ฒ˜๋Š” ๋ฐ”๋กœ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ์ด์ง€๋งŒ, ์ผ๋ฐ˜์ ์ธ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฒ˜๋ฆฌ ๋กœ์ง ์ค‘์—์„œ๋„ ์ด๋Ÿฌํ•œ ์ฝœ๋ฐฑ ํŒจํ„ด์„ ์ผ์šฉํ•ด์„œ ํ•ด๋‹น ํ•จ์ˆ˜์˜ ํ˜ธ์ถœ์ด ๋๋‚˜๊ณ  ๋‚œ ๋’ค์— ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ํŠนํžˆ ํ•˜๋‚˜์˜ ๊ณตํ†ต ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ด์šฉํ•  ๋•Œ ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋ฅผ ๋„˜๊ฒจ์ฃผ๋Š” ๊ฒƒ์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ํ™•์žฅ์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ๋‹ค.
์ฝœ๋ฐฑ ํ•จ์ˆ˜๊ฐ€ ๊ฒน์น˜๋ฉด ์†Œ์Šค๋ฅผ ์ฝ๋Š” ๊ฒƒ ์ž์ฒด๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•  ์ •๋„๋กœ ๋ณต์žกํ•ด์ง€๋ฏ€๋กœ ์ ๋‹นํ•˜๊ฒŒ ํ•จ์ˆ˜๋ช…์„ ๋”ฐ๋กœ ๋ถ„๋ฆฌํ•ด์„œ ์†Œ์Šค๋ฅผ ์ •๋ฆฌํ•˜๋Š”๊ฒƒ์ด ์ฝœ๋ฐฑ ํŒจํ„ด์—์„œ ์ฃผ์˜ํ•  ์ ์ด๋‹ค.

์˜ˆ์ œ

// 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;
    }

}());

Clone this wiki locally