[javascript] Ajax
in JavaScript
Ajax
μΉλΈλΌμ°μ λ λλ¨ν μ μ μΈ μμ€ν μ΄μλ€. λ΄μ©μ΄ λ°λλ©΄ νμ΄μ§ μλ‘κ³ μΉ¨μ ν΄μ λ΄μ©μ μλ‘κ² λ³κ²½ν΄μΌ νλ€. μ΄κ²μ μΉμ΄ μ μ λ¬Έμλ₯Ό μΌλμ λκ³ κ³ μλ μμ€ν μ΄κΈ° λλ¬Έμ λΉμ°νκ² μκ° λμλ€.
κ·Έλ¬λ€ Ajax κ°λ μ΄ λμ λλ©΄μ λͺ¨λ κ²μ΄ λ°λμλ€. Ajaxλ μΉλΈλΌμ°μ μ μΉμλ²κ° λ΄λΆμ μΌλ‘ λ°μ΄ν° ν΅μ μ νκ² λλ€. κ·Έλ¦¬κ³ λ³κ²½λ κ²°κ³Όλ₯Ό μΉνμ΄μ§μ νλ‘κ·Έλλ°μ μΌλ‘ λ°μν¨μΌλ‘μ¨ μΉνμ΄μ§μ λ‘λ© μμ΄ μλΉμ€λ₯Ό μ¬μ©ν μ μκ² νλ€.
Ajaxλ Asynchronous JavaScript and XMLμ μ½μλ€. νκ΅μ΄λ‘λ λΉλκΈ°μ μλ°μ€ν¬λ¦½νΈμ XML μ λλ‘ μ§μν μ μλλ° μλ°μ€ν¬λ¦½νΈλ₯Ό μ΄μ©ν΄μ λΉλκΈ°μ μΌλ‘ μλ²μ λΈλΌμ°μ κ° λ°μ΄ν°λ₯Ό μ£Όκ³ λ°λ λ°©μμ μλ―Ένλ€. μ΄ λ μ¬μ©νλ APIκ° XMLHttpRequestμ΄λ€. κ·Έλ λ€κ³ κΌ XMLμ μ¬μ©ν΄μ ν΅μ ν΄μΌ νλ κ²μ μλλ€. μ¬μ€ XML 보λ€λ JSONμ λ λ§μ΄ μ¬μ©νλ€.
μ μ΄μΏΌλ¦¬μ Ajax
Ajaxλ₯Ό μ΄μ©νμ¬ κ°λ°μ μμ½κ² ν μ μλλ‘ λ―Έλ¦¬ μ¬λ¬ κ°μ§ κΈ°λ₯μ ν¬ν¨ν΄ λμ κ°λ° νκ²½μ Ajax νλ μμν¬λΌκ³ ν©λλ€.
κ·Έμ€μμλ νμ¬ κ°μ₯ λ리 μ¬μ©λκ³ μλ Ajax νλ μμν¬λ λ°λ‘ μ μ΄μΏΌλ¦¬(jQuery)μ λλ€.
$.ajax() λ©μλ
μ μ΄μΏΌλ¦¬λ Ajaxμ κ΄λ ¨λ λ€μνκ³ λ νΈλ¦¬ν λ©μλλ₯Ό λ§μ΄ μ 곡νκ³ μμ΅λλ€.
κ·Έμ€μμλ $.ajax() λ©μλλ λͺ¨λ μ μ΄μΏΌλ¦¬ Ajax λ©μλμ ν΅μ¬μ΄ λλ λ©μλμ λλ€.
$.ajax() λ©μλλ HTTP μμ²μ λ§λλ κ°λ ₯νκ³ λ μ§κ΄μ μΈ λ°©λ²μ μ 곡ν©λλ€.
$.ajax() λ©μλμ μνμ λ€μκ³Ό κ°μ΅λλ€.
$.ajax([μ΅μ
])
URL μ£Όμλ ν΄λΌμ΄μΈνΈκ° HTTP μμ²μ λ³΄λΌ μλ²μ μ£Όμμ λλ€.
μ΅μ μ HTTP μμ²μ ꡬμ±νλ ν€μ κ°μ μμΌλ‘ ꡬμ±λλ ν€λμ μ§ν©μ λλ€.
λ€μ μμ λ $.ajax() λ©μλμμ μ¬μ©ν μ μλ λνμ μΈ μ΅μ μ μ€λͺ νλ μμ μ λλ€.
$.ajax({
url: "/examples/media/request_ajax.php",//ν΄λΌμ΄μΈνΈκ° μμ²μ λ³΄λΌ μλ²μ URL μ£Όμ
data: { name: "MyName" }, // HTTP μμ²κ³Ό ν¨κ» μλ²λ‘ λ³΄λΌ λ°μ΄ν°
type: "GET", // HTTP μμ² λ°©μ(GET, POST)
dataType: "json" // μλ²μμ 보λ΄μ€ λ°μ΄ν°μ νμ
})
// HTTP μμ²μ΄ μ±κ³΅νλ©΄ μμ²ν λ°μ΄ν°κ° done() λ©μλλ‘ μ λ¬λ¨.
.done(function(json) {
$("<h1>").text(json.title).appendTo("body");
$("<div class=\"content\">").html(json.html).appendTo("body");
})
// HTTP μμ²μ΄ μ€ν¨νλ©΄ μ€λ₯μ μνμ κ΄ν μ λ³΄κ° fail() λ©μλλ‘ μ λ¬λ¨.
.fail(function(xhr, status, errorThrown) {
$("#text").html("μ€λ₯κ° λ°μνμ΅λλ€.<br>")
.append("μ€λ₯λͺ
: " + errorThrown + "<br>")
.append("μν: " + status);
})
// HTTP μμ²μ΄ μ±κ³΅νκ±°λ μ€ν¨νλ κ²μ μκ΄μμ΄ μΈμ λ always() λ©μλκ° μ€νλ¨.
.always(function(xhr, status) {
$("#text").html("μμ²μ΄ μλ£λμμ΅λλ€!");
});
λ€μ μμ λ $.ajax() λ©μλμ λμμ 보μ¬μ£Όλ κ°λ¨ν μμ μ λλ€.
$(function() {
$("#requestBtn").on("click", function() {
$.ajax("/examples/media/request_ajax.php")
.done(function() {
alert("μμ² μ±κ³΅");
})
.fail(function() {
alert("μμ² μ€ν¨");
})
.always(function() {
alert("μμ² μλ£");
});
});
});
load() λ©μλ
load() λ©μλλ μ νν μμμμ νΈμΆνλ μ μΌν μ μ΄μΏΌλ¦¬ Ajax λ©μλμ λλ€.
load() λ©μλλ μλ²μμ λ°μ΄ν°λ₯Ό μ½μ ν, μ½μ΄ λ€μΈ HTML μ½λλ₯Ό μ νν μμμ λ°°μΉν©λλ€.
λν, μ νμλ₯Ό URL μ£Όμμ ν¨κ» μ μ‘νλ©΄, μ½μ΄ λ€μΈ HTML μ½λ μ€μμ μ νμμ μΌμΉνλ μμλ§μ λ°°μΉν©λλ€.
$(function() {
$("#requestBtn").on("click", function() {
// URL μ£Όμμ μ‘΄μ¬νλ HTML μ½λμμ <li>μμλ₯Ό μ½μ νμ idκ° "list"μΈ μμμ λ°°μΉν¨.
$("#list").load("/examples/tryit/htmlexample/jq_elementTraversing_etc_01.html li");
});
});
Ajax λ©μλ
μ μ΄μΏΌλ¦¬λ $.ajax() λ©μλλΏλ§ μλλΌ Ajaxμ κ΄λ ¨λ λ€μν λ©μλλ₯Ό μ 곡νκ³ μμ΅λλ€.
λ©μλ | μ€λͺ |
---|---|
$.ajax() | λΉλκΈ°μ Ajaxλ₯Ό μ΄μ©νμ¬ HTTP μμ²μ μ μ‘ν¨. |
$.get() | μ λ¬λ°μ μ£Όμλ‘ GET λ°©μμ HTTP μμ²μ μ μ‘ν¨. |
$.post() | μ λ¬λ°μ μ£Όμλ‘ POST λ°©μμ HTTP μμ²μ μ μ‘ν¨. |
$.getScript() | μΉ νμ΄μ§μ μ€ν¬λ¦½νΈλ₯Ό μΆκ°ν¨. |
$.getJSON() | μ λ¬λ°μ μ£Όμλ‘ GET λ°©μμ HTTP μμ²μ μ μ‘νμ¬, μλ΅μΌλ‘ JSON νμΌμ μ μ‘λ°μ. |
.load() | μλ²μμ λ°μ΄ν°λ₯Ό μ½μ ν, μ½μ΄ λ€μΈ HTML μ½λλ₯Ό μ νν μμμ λ°°μΉν¨. |