ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • jQuery ์ œ์ด์ฟผ๋ฆฌ ์ด๋ฒคํŠธ, Ajax ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ
    JavaScript 2020. 9. 25. 23:58

    ๐ŸŽฏ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ jQuery ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ์™€ Ajax ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณธ๋‹ค.

     

     

     

     

    jQuery ๊ธฐ๋ณธ Event

     

    .ready(function)

    HTML๋ฌธ์„œ์˜ ๋ชจ๋“  DOM์š”์†Œ๋“ค์ด ์™„๋ฒฝํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ค€๋น„๊ฐ€ ๋˜๋ฉด ํ˜ธ์ถœ๋˜์–ด functionํ•จ์ˆ˜๊ฐ€ ์‹คํ–‰๋œ๋‹ค. ํŒŒ๋ผ๋ฏธํ„ฐ ์•ˆ์— ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋‚˜ jQuery ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค.

    ์™ธ๋ถ€ ๋ฆฌ์†Œ์Šค๋‚˜ ์ด๋ฏธ์ง€์™€ ์ƒ๊ด€์—†์ด ๋ชจ๋“  ๋” ์š”์†Œ๋“ค์ด ์ค€๋น„๋˜๋ฉด ๋ฐ”๋กœ ํ˜ธ์ถœ๋˜๊ธฐ ๋•Œ๋ฌธ์— window.onload๋ณด๋‹ค ๋น ๋ฅด๋‹ค.

     

     

    .on(events[,selector][,data],function)

    .on() ๋ฉ”์„œ๋“œ๋Š” .bind() ๋ฉ”์„œ๋“œ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ๋“ฑ๋กํ•˜๊ธฐ ์œ„ํ•˜์—ฌ ์‚ฌ์šฉ๋˜๋Š” ๋ฉ”์„œ๋“œ์ด๋‹ค. .on() ๋ฉ”์„œ๋“œ๋Š” ๋™์ ์œผ๋กœ ์ƒ์„ฑ๋  ์š”์†Œ์— ๋Œ€ํ•ด์„œ๋„ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.

    <body>
      <button id="create">new</button>
      <div></div>
    </body>
    $(function (){
        $("#create").on("click",function(){
            $("div").html("<button id='newButton'>ok</button>");
        });
        $("body").on("click","#newButton", function(event){
            console.log("click");
        });
    });

     

     

     

    .one(events[,selector][,data],function)

    .one() ๋ฉ”์„œ๋“œ๋Š” .on() ๋ฉ”์„œ๋“œ์™€ ๋™์ผํ•œ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ์ฐจ์ด์ ์€ .one()๋ฉ”์„œ๋“œ๋Š” ๋ฉ”์„œ๋“œ ์ด๋ฆ„์ฒ˜๋Ÿผ ๋‹จ ํ•œ๋ฒˆ๋งŒ ์ด๋ฒคํŠธ๊ฐ€ ์ฒ˜๋ฆฌ๋˜๋ฉฐ ์ž๋™์œผ๋กœ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๊ฐ€ ์ œ๊ฑฐ(unbound)๋œ๋‹ค. .on()๋ฉ”์„œ๋“œ๋กœ ์„ค์ •ํ•œ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋ช…์‹œ์ ์œผ๋กœ .off(event) ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ๋˜๋Š”๋ฐ, .one() ๋ฉ”์„œ๋“œ๋Š” ์ด๋ฒคํŠธ ์‹คํ–‰ ํ›„์— ์ž๋™์œผ๋กœ ์ด๋ฒคํŠธ๊ฐ€ ํ•ด์ œ๋œ๋‹ค.

    <body>
      <button id="pressMe">Press Me</button>
    </body>
    $(function (){
       $("#pressMe").one("click", function(){
           console.log("๋‹จ ํ•œ๋ฒˆ๋งŒ ์ด๋ฒคํŠธ ์‹คํ–‰");
       });
    });

     

     

    .trigger(eventType[,extraParameters])

    ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒ๋  ๋•Œ ์‹คํ–‰๋  ํ•จ์ˆ˜๋‚˜ .on()๋ฉ”์„œ๋“œ๋กœ ์—ฐ๊ฒฐ๋œ ์–ด๋–ค ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ๊ฐ•์ œ์ ์œผ๋กœ ์‹คํ–‰์‹œํ‚ค๋Š” ๋ฉ”์„œ๋“œ์ด๋‹ค. ๋”ฐ๋ผ์„œ .trigger() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ์‹คํ–‰์‹œํ‚ค๋Š” ์ด๋ฒคํŠธ์— ์ˆœ์„œ๋ฅผ ์ง€์ •ํ•ด์„œ ์‹คํ–‰์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.

    $(function (){
    	 $("#foo").on("click", function(){
           console.log($(this).text());
       });
       $("#foo").trigger("click");
    });

    .on()์€ ํŠน์ • ๋”์— ์ด๋ฒคํŠธ ๋ฐœ์ƒํ•  ๋•Œ ๋™์ž‘ํ•  ํ•จ์ˆ˜๋ฅผ ์ง€์ •ํ•˜๊ณ , .trigger()๋Š” ํด๋ฆญ์ด๋ฒคํŠธ๋ฅผ ๊ฐ•์ œ๋กœ ์‹คํ–‰ํ•œ๋‹ค. ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์ƒˆ๋กœ๊ณ ์นจํ•˜๋ฉด ํด๋ฆญ์ด๋ฒคํŠธ ๋ฐœ์ƒ ์—†์ด๋„ ์ฝ˜์†”์— ํ…์ŠคํŠธ๊ฐ€ ์ž๋™ ์ถœ๋ ฅ๋˜๊ณ  ์žˆ๋‹ค.

    ์—ฌ๋Ÿฌ๊ฐœ์˜ ๋”์— ํŠธ๋ฆฌ๊ฑฐ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ˆœ์„œ๋ฅผ ์ •ํ•ด์„œ ์ด๋ฒคํŠธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๊ฑฐ๋‚˜ ๊ฐ•์ œ ๋ฐœ์ƒํ•˜๋„๋ก ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

     

    <body>
        <input type="text" name="message" id="message">
      <button>Press</button>
    </body>
    $(function (){
       $("button").on("click", function(){
           $("[name=message]").trigger("myCustom");
       });
       $("[name=message]").on("myCustom", function(event){
           $(this).val("๋ฉ”์‹œ์ง€๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”");
       });
       $("[name=message]").on("focus",function(event){
           $(this).val("");
       });
    });

     

     

    .off(events[,selector][,function])

    on() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋“ฑ๋ก๋œ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ์ œ๊ฑฐ์‹œํ‚ค๋Š” ๋ฉ”์„œ๋“œ์ด๋‹ค.

    .unbind()์™€๋Š” ๋‹ค๋ฅด๊ฒŒ .off()๋ฉ”์„œ๋“œ๋Š” ๋‘ ๋ฒˆ์งธ ์ธ์ž์ธ selector์— ํ•„ํ„ฐ๋งํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ’์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์–ด์„œ ํ›จ์”ฌ ์„ธ๋ฐ€ํ•˜๊ฒŒ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ์ œ๊ฑฐ ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ฐ˜๋“œ์‹œ .on()๋ฉ”์„œ๋“œ์—์„œ ์‚ฌ์šฉํ–ˆ๋˜ ์ธ์ž์™€ ๋™์ผํ•ด์•ผ ๋œ๋‹ค.

    <button id="on">on</button>
    <button id="off">off</button>
    $(function (){
           $("#on").on("click",function(){
               console.log("on~");
           });
           $("#off").on("click", function(){
               $("#on").off("click");
           })
        });

     

     

     

     

    jQuery ํผ Event

     

    .focus([function]) ๋ฐ .blur([function])

    .focus([function]) ๋ฉ”์„œ๋“œ๋Š” ๋Œ€์ƒ ์š”์†Œ์— focus ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒ๋˜๋ฉด function์ด ์‹คํ–‰๋˜๋Š” ๋ฉ”์„œ๋“œ์ด๋‹ค. ์ด ๋ฉ”์„œ๋“œ๋Š” .on("focus",function)์™€ ๋™์ผํ•˜๋ฉฐ ์ธ์ž ์—†๋Š” .focus() ๋ฉ”์„œ๋“œ๋Š” .trigger("focus")๋ฅผ ์ค„์—ฌ์„œ ํ‘œํ˜„ํ•œ ๊ฒƒ์ด๋‹ค.

    ๋ฐ˜๋Œ€๋กœ .blur(function) ๋ฉ”์„œ๋“œ๋Š” ๋Œ€์ƒ ์š”์†Œ๊ฐ€ focus๋ฅผ ์žƒ์—ˆ์„ ๋•Œ ์‹คํ–‰๋œ๋‹ค.

    <body>
        <form>
            <input id="target" type="text">
            <input type="text">
        </form>
        <button id="other">focus</button>
        <button id="other2">blur</button>
    </body>
    $(function (){
       $("#target").focus(function(){
           $(this).css("background", "yellow");
       });
       $("#target").blur(function(){
           $(this).css("background", "");
       });
       $("#other").on("click",function(){
           $("#target").focus();
       });
       $("other2").on("click",function(){
           $("#target").blur();
       })
    });

     

     

    .change([function])

    ๋Œ€์ƒ ์š”์†Œ์— change์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒ๋˜๋ฉด function์ด ์‹คํ–‰๋˜๋Š” ๋ฉ”์„œ๋“œ์ด๋‹ค. ์ด ๋ฉ”์„œ๋“œ๋Š” .on("change",function)์™€ ๋™์ผํ•˜๋ฉฐ ์ธ์ž ์—†๋Š” .change()๋ฉ”์„œ๋“œ๋Š” trigger("change")๋ฅผ ์ค„์—ฌ์„œ ํ‘œํ˜„ํ•œ ๊ฒƒ์ด๋‹ค.

    change ์ด๋ฒคํŠธ๋Š” ๊ฐ’์ด ๋ณ€๊ฒฝ๋˜์—ˆ์„ ๊ฒฝ์šฐ์— ๋ฐœ์ƒ๋˜๋Š” ์ด๋ฒคํŠธ๋กœ์„œ, <input>์š”์†Œ ๋ฐ <textarea>์™€ <select>์š”์†Œ์—์„œ๋งŒ ์ œํ•œ์ ์œผ๋กœ ๋ฐœ์ƒ๋˜๋Š” ์ด๋ฒคํŠธ์ด๋‹ค.

    <body>
        <select name="sweets">
            <option>์ดˆ์ฝœ๋ฆฟ</option>
            <option>์บ”๋””</option>
            <option selected="selected">์‚ฌํƒ•</option>
            <option>์•„์ด์Šคํฌ๋ฆผ</option>
            <option>์ฟ ํ‚ค</option>
        </select>
        <div></div>
    </body>
    $(function (){
       $("select").change(function(){
            $("div").text($("option:selected").text());
       });
    });

     

     

    . submit([function])

    ๋Œ€์ƒ ์š”์†Œ์— submit์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒ๋˜๋ฉด function์ด ์‹คํ–‰๋˜๋Š” ๋ฉ”์„œ๋“œ์ด๋‹ค. ์ด ๋ฉ”์„œ๋“œ๋Š” .on("submit",function)๊ณผ ๋™์ผํ•˜๋ฉฐ ์ธ์ž ์—†๋Š” .submit()๋ฉ”์„œ๋“œ๋Š” .trigger("submit")๋ฅผ ์ค„์—ฌ์„œ ํ‘œํ˜„ํ•œ ๊ฒƒ์ด๋‹ค.

    submit ์ด๋ฒคํŠธ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ form์„ submitํ•  ๋•Œ๋งŒ ๋ฐœ์ƒ๋˜๋Š” ์ด๋ฒคํŠธ๋กœ์„œ ๋ช…์‹œ์ ์œผ๋กœ <input type="submit">์š”์†Œ ์™€ <button type="submit"> ์„ ํด๋ฆญํ•˜๊ฑฐ๋‚˜ ํผ์˜ ์š”์†Œ์—์„œ Enter ํ‚ค๋ฅผ ๋ˆŒ๋ €์„ ๋•Œ ์ œํ•œ์ ์œผ๋กœ ๋ฐœ์ƒ๋˜๋Š” ์ด๋ฒคํŠธ์ด๋‹ค.

    <body>
        ok์ž…๋ ฅํ•˜๋ฉด '์„ฑ๊ณต' ์ถœ๋ ฅํ•˜๊ณ  ์•„๋‹ˆ๋ฉด '์‹คํŒจ' ์ถœ๋ ฅ
       <form id="target">
           <input type="text">
           <input type="submit" value="Go">
       </form>
        <div></div>
    </body>
    $("#target").submit(function(event){
        var mesg = "์‹คํŒจ"
        if($(":text").val()=='ok'){
            mesg = "์„ฑ๊ณต";
        }
        $("div").text(mesg);
        event.preventDefault();
    });

     

     

    . keydown([function])

    ๋Œ€์ƒ ์š”์†Œ์— keydown์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒ๋˜๋ฉด function์ด ์‹คํ–‰๋˜๋Š” ๋ฉ”์„œ๋“œ์ด๋‹ค. ์ด ๋ฉ”์„œ๋“œ๋Š” .on("keydown",function)๊ณผ ๋™์ผํ•˜๋ฉฐ ์ธ์ž ์—†๋Š” .keydown()๋ฉ”์„œ๋“œ๋Š” .trigger("keydown")๋ฅผ ์ค„์—ฌ์„œ ํ‘œํ˜„ํ•œ ๊ฒƒ์ด๋‹ค.keydown ์ด๋ฒคํŠธ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ํ‚ค๋ณด๋“œ๋ฅผ ๋ˆ„๋ฅด๋Š” ์ˆœ๊ฐ„์— ๋ฐœ์ƒ๋œ๋‹ค.

    <body>
       <form>
           <input type="text" id="target">
       </form>
        <div></div>
    </body>
    $(function (){
       $("#target").keydown(function(){
           $("div").text(event.keyCode);
       })
    });

     

     

    . keyup([function])

    ๋Œ€์ƒ ์š”์†Œ์— keyup์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒ๋˜๋ฉด function์ด ์‹คํ–‰๋˜๋Š” ๋ฉ”์„œ๋“œ์ด๋‹ค. ์ด ๋ฉ”์„œ๋“œ๋Š” .on("keyup",function)๊ณผ ๋™์ผํ•˜๋ฉฐ ์ธ์ž ์—†๋Š” .keyup()๋ฉ”์„œ๋“œ๋Š” .trigger("keyup")๋ฅผ ์ค„์—ฌ์„œ ํ‘œํ˜„ํ•œ ๊ฒƒ์ด๋‹ค. keyup ์ด๋ฒคํŠธ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ํ‚ค๋ณด๋“œ๋ฅผ ๋ˆŒ๋ €๋‹ค ๋–ผ๋Š” ์ˆœ๊ฐ„์— ๋ฐœ์ƒ๋œ๋‹ค.

    <form>
       <input id="target" type="text">
    </form>
    <div></div>
    $(function (){
       $("#target").keyup(function(){
            $("div").text($(":text").val().length);
       });
    });

     

     

     

    jQuery ๋งˆ์šฐ์Šค Event


    . click([function])

    ๋Œ€์ƒ ์š”์†Œ์— click ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒ๋˜๋ฉด function์ด ์‹คํ–‰๋˜๋Š” ๋ฉ”์„œ๋“œ์ด๋‹ค. ์ด ๋ฉ”์„œ๋“œ๋Š” .on("click",function)์™€ ๋™์ผํ•˜๋ฉฐ ์ธ์ž ์—†๋Š” .click() ๋ฉ”์„œ๋“œ๋Š” .trigger("click")๋ฅผ ์ค„์—ฌ์„œ ํ‘œํ˜„ํ•œ ๊ฒƒ์ด๋‹ค.

    click ์ด๋ฒคํŠธ๋Š” ๋Œ€์ƒ ์š”์†Œ๋ฅผ ๋งˆ์šฐ์Šค ํฌ์ธํ„ฐ๋กœ ๋ˆ„๋ฅด๊ณ  ๋–จ์–ด์งˆ ๋•Œ ๋ฐœ์ƒ๋˜๋Š” ์ด๋ฒคํŠธ๋กœ์„œ, HTML์˜ ์–ด๋–ค ์š”์†Œ๋ผ๋„ ์ด ์ด๋ฒคํŠธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.

    $(function (){
       $("p").click(function(){
           $(this).slideUp();
       })
    });

     

     

    .hover(functionIn, functionOut)

    ๋Œ€์ƒ ์š”์†Œ์— mouseenter ์™€ mouseleave ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒ๋˜๋ฉด ๊ฐ๊ฐ functionIn๊ณผ functionOut์ด ์‹คํ–‰๋˜๋Š” ๋ฉ”์„œ๋“œ์ด๋‹ค. ์ด ๋ฉ”์„œ๋“œ๋Š” $(selector).mouseenter(functionIn).mouseleave(functionOut) ๋ฉ”์„œ๋“œ๋ฅผ ์ค„์—ฌ์„œ ํ‘œํ˜„ํ•œ ๊ฒƒ์ด๋‹ค.

    <body>   
       <li>aaa</li>
       <li>aaa</li>
       <li class="fade">aaa</li>
       <li class="fade">aaa</li>
    </body>
    $(function (){
       $("li").hover(
           function(){
               $(this).append($("<span>***</span>"));
           }, function(){
               $(this).find("span").remove();
           }
       )
    });

     

     

    jQuery Ajax ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ ๋ฐฉ์‹

    ‘Asynchronous Javascript and XML’ ์˜ ์•ฝ์ž๋กœ์„œ ๋น„๋™๊ธฐ ๋ฐฉ์‹์œผ๋กœ ์ฒ˜๋ฆฌ ํ•˜๋Š” ์ƒˆ๋กœ์šด ์›น ํ†ต์‹  ๋ฐฉ์‹์„ ์˜๋ฏธํ•œ๋‹ค.

    ์„œ๋ฒ„๊ฐ€ ์ค‘๊ฐ„์— ajax ์—”์ง„์— ์š”์ฒญํ•˜๊ณ  ์—”์ง„์ด http ์š”์ฒญ์„ ๋ณด๋‚ด์ค€๋‹ค. ๋ณด๋‚ด์ฃผ๊ณ  ์žˆ๋Š” ๋™์•ˆ์—๋„ ์‚ฌ์šฉ์ž๋Š” ๋ธŒ๋ผ์šฐ์ €๋ฅผ ๊ณ„์† ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์„œ๋ฒ„์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์„œ ์‚ฌ์šฉ์ž์—๊ฒŒ html๋ฐ์ดํ„ฐ๊ฐ€ ์•„๋‹Œ xml ๋ฐ์ดํ„ฐ๋กœ ์—”์ง„์—๊ฒŒ ๋ณด๋‚ด์ฃผ๊ณ  ์—”์ง„์€ html๋ฐ์ดํ„ฐ๋กœ ๋ฐ”๊ฟ”์„œ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด๋‚ด์ค€๋‹ค.

     

    ๊ธฐ์กด๋ฐฉ์‹ ์›น์ฒ˜๋ฆฌ

    ์‚ฌ์šฉ์ž๊ฐ€ ์š”์ฒญ์„ ๋ณด๋‚ด๋ฉด ์‘๋‹ต์ด ์˜ฌ๋•Œ๊นŒ์ง€ ๋Œ€๊ธฐ์ƒํƒœ๋‹ค.

     

    ajax ์ฒ˜๋ฆฌ๋ฐฉ์‹

    ์ค‘๊ฐ„ ์—”์ง„์ด ์‚ฌ์šฉ์ž ์š”์ฒญ์„ ๋ฐ›๊ณ  ์‘๋‹ต์„ ์‚ฌ์šฉ์ž ๋Œ€์‹  ๊ธฐ๋‹ค๋ ค์ค€๋‹ค. ์‚ฌ์šฉ์ž๋Š” ๊ณ„์† ์›น๋ธŒ๋ผ์šฐ์ €๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

     

    ๋”ฐ๋ผ์„œ Ajax๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํŽ˜์ด์ง€ ์›นํŽ˜์ด์ง€ ์ „์ฒด๊ฐ€ ์•„๋‹Œ ์ผ๋ถ€๋ถ„์— ๋Œ€ํ•œ ํ™”๋ฉด ๊ฐฑ์‹  ๋ฐ ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋ฉฐ ์„œ๋ฒ„์™€ ํ†ต์‹  ์ค‘์—๋„ ๋‹ค๋ฅธ ์ผ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๊ฒƒ์„ ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ๋ผ๊ณ  ํ•œ๋‹ค. ๋น„๋™๊ธฐ์ฒ˜๋ฆฌ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ๊ตฌํ˜„๋˜์ง€๋งŒ ๊ฐ„๋‹จํ•œ ์ฝ”๋“œ ์ž‘์„ฑ์„ ์œ„ํ•ด ์ œ์ด์ฟผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์œ ์ €์ด๋ฒคํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•ด์„œ XML Http Request(XHR)๊ฐ€ ์š”์ฒญ์„ ๋ฐ›๊ณ  ์„œ๋ฒ„์— ์š”์ฒญ์„ ๋ณด๋‚ธ๋‹ค. ๋‹ค์‹œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›๊ณ  ํ™”๋ฉด์— ๋ณด์—ฌ์ฃผ๋Š” ์ž‘์—…์„ ํ•œ๋‹ค.

     

     

    XML Http Request ๊ฐ์ฒด์˜ ํ†ต์‹ ์ƒํƒœ ํ™•์ธ ํ”„๋กœํผํ‹ฐ

    readyState ํ”„๋กœํผํ‹ฐ

    ์‚ฌ์šฉ์ž์™€ ์„œ๋ฒ„์˜ ํ†ต์‹ ์ด ๋˜‘๋ฐ”๋กœ ์ด๋ฃจ์–ด์กŒ๋‚˜ ์ƒํƒœ๊ฐ’์„ ์ €์žฅํ•œ๋‹ค.

    ๋˜‘๋ฐ”๋กœ ์‘๋‹ต์„ ๋ฐ›์•„์™”์„ ๊ฒฝ์šฐ ๋ฐ˜ํ™˜๊ฐ’์€ 4๊ฐ€ ๋œ๋‹ค.

     

    status ํ”„๋กœํผํ‹ฐ

    ๋ฐ˜ํ™˜๊ฐ’ 200์€ ์ฒ˜๋ฆฌ ์„ฑ๊ณต, 400๋Œ€๋Š” ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ ์—๋Ÿฌ, 500๋Œ€๋Š” ์„œ๋ฒ„ ๋‚ด๋ถ€ ์—๋Ÿฌ๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

     

     

    .jQuery.ajax( url[,settings] )

    ๋น„๋™๊ธฐ HTTP(Ajax) ์š”์ฒญ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฉ”์†Œ๋“œ์ด๋‹ค. url์€ ์š”์ฒญ์„ ๋ณด๋‚ผ ํƒ€๊ฒŸ URL๊ฐ’์œผ๋กœ์„œ ๋ฌธ์ž์—ด๋กœ ์ง€์ •ํ•˜๋ฉด ๋˜๊ณ  settings์€ key/value ์Œ์œผ๋กœ ๊ตฌ์„ฑ๋œ, Ajax ์š”์ฒญ์‹œ ์ถ”๊ฐ€๋กœ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š” ์„ค์ • ๊ฐ’์ด๋‹ค.

    $(function () {
    		$("button").on("click", getData);
    	});
    	
    	function getData() {
    		$.ajax({
    			type:"get",  //์ „์†กํƒ€์ž…
    			url:"sample01_text.jsp",//์„œ๋ฒ„์š”์ฒญ๋Œ€์ƒํŒŒ์ผ
    			dataType:"text",  //์‘๋‹ตํƒ€์ž…
    			success: function (data, status, xhr) {
    				$("#result").text(data);
    			},
    			error: function (xhr, status, e) {
    				console.log("error", e);
    				console.log("status", status);
    			}
    		});
    	}
    <body>
    	<button id="a">ajax์š”์ฒญ</button>
    	<div id="result"></div>
    </body>
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <% String name = "ํ™๊ธธ๋™"; %>
    <%= name %>

     

    ajax ์ฝ”๋“œ ์•ˆ์— ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ๋ฐ์ดํ„ฐ ๊ฐ’์„ ํ‚ค-๋ฐธ๋ฅ˜๋กœ ์ž…๋ ฅํ•œ๋‹ค. ์š”์ฒญ์ด ์˜ค๋ฉด ์—”์ง„์ด ์š”์ฒญ๋‚ด์šฉ์„ ์„œ๋ฒ„๋กœ ๋ณด๋‚ด์ฃผ๊ณ  success๋ถ€ํ„ฐ๋Š” ์‘๋‹ต ์ฒ˜๋ฆฌ ๋‚ด์šฉ์„ ๋ณด์—ฌ์ฃผ๊ธฐ ์œ„ํ•œ ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•œ๋‹ค.

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

     

     

    ์—ฐ์Šต 1

    <body>
    	<button id="a">ajax์š”์ฒญ</button>
    	v1:<input type="text" name="v1" id="v1"><br>
    	v2:<input type="text" name="v2" id="v2"><br>
    	<div id="result"></div>
    </body>
    $(function () {
    		$("button").on("click", getData);
    	});
    	
    	function getData() {
    		$.ajax({
    			type:"get",  //์ „์†กํƒ€์ž…
    			url:"sample01_text2.jsp",//์„œ๋ฒ„์š”์ฒญ๋Œ€์ƒํŒŒ์ผ
    			data:{
    				v1: $("#v1").val(),
    				v2: $("#v2").val()
    			},
    			dataType:"text",  //์‘๋‹ตํƒ€์ž…
    			success: function (data, status, xhr) {
    				$("#result").text(data);
    			},
    			error: function (xhr, status, e) {
    				$("#result").append(error);
    				$("#result").append(status);
    			}
    		});
    	}
    <% 
    	String v1 = request.getParameter("v1");
    	String v2 = request.getParameter("v2");
    	System.out.print(v1+"\t"+v2);	
    %>
    
    <%= v1 + ":"+v2+"์ „์†ก์™„๋ฃŒ" %>

    ๊ฐ„๋‹จํ•œ ๋ฐ์ดํ„ฐ ์ „์†ก

     

     

    ์—ฐ์Šต 2

    <body>
    	<button id="a">ajax์š”์ฒญ</button>
    	<div id="result"></div>
    </body>
    $(function () {
    		$("#a").on("click", getData);
    	});
    	
    	function getData() {
    		$.ajax({
    			type:"get",
    			url:"sample02_json.jsp",
    			dataType: "json",
    			success:function(data,status,xhr){
    				
    				var username = data.username;
    				var age = data.age;
    				
    				console.log(username, age);
    				$("#result").text(username+":"+age);
    			},
    			error: function(xhr, status, error){
    				$("#result").text(error);
    			}
    		})
    	}
    <% 
    	String name = "ํ™๊ธธ๋™";
    	int age = 20;
    %>
    
    {
    	"username":"<%= name %>",
    	"age":"<%= age %>"
    }

    json ๋ฐ์ดํ„ฐ ๋งŒ๋“ค๊ธฐ

     

     

    ๋ฐ˜์‘ํ˜•

    ๋Œ“๊ธ€

๊ฐœ๋ฐœ๊ณต๋ถ€