AJAX

μΉ λΈλΌμ°μ μμ μΉνμ΄μ§λ₯Ό μμ²νκ±°λ λ§ν¬ ν΄λ¦μ νλ©΄ μ νμ΄ λ°μνλ€.

μλ²μ λΈλΌμ°μ μμ ν΅μ μ μν κ²μΈλ°, μλ²λ μμ²λ°μ νμ΄μ§(HTML)λ₯Ό λ°ννλ€. μ΄λ HTMLμμ λ‘λνλ CSS, JavaScript νμΌλ€λ κ°μ΄ λ°νλλ€. ν΄λΌμ΄μΈνΈμ μμ²μ λ°λΌμ μλ²λ μ μ μΈ νμΌ, μλ² μ¬μ΄λ νλ‘κ·Έλ¨μ΄ λ§λλ νμΌ, λ°μ΄ν°λ₯Ό λ°νν μλ μλ€. μλ²λ‘ λΆν° μΉνμ΄μ§κ° λ°νλλ©΄ ν΄λΌμ΄μΈνΈ(λΈλΌμ°μ )λ μ΄λ₯Ό λ λλ§νμ¬ νλ©΄μ νμνλ€.
Ajax
Ajaxλ Asynchronous JavaScript and XMLμ μ½μλ‘ JavaScriptλ₯Ό μ΄μ©νμ¬ λΉλκΈ°μ (Asynchronous)μΌλ‘ μλ²μ λΈλΌμ°μ κ°μ λ°μ΄ν°λ₯Ό κ΅νν μ μλ ν΅μ λ°©μμ΄λ€.

μ¦, μλ²λ‘λΆν° μΉνμ΄μ§κ° λ°νλλ©΄ νλ©΄ μ 체λ₯Ό κ°±μ νμ§ μκ³ , μΌλΆλ§μ κ°±μ νλ λ°©λ²μ΄λ€.

Ajaxμ λμμ리λ Browserμμ μλ²λ‘ λ³΄λΌ Dataλ₯Ό Ajax Engineμ ν΅ν΄μ μλ²λ‘ μ μ‘νλ€. μ΄λ Ajax Engineμ JavaScriptλ₯Ό ν΅ν΄ DOMμ μ¬μ©νμ¬ XMLHttpRequest(XHR) κ°μ²΄λ‘ λ°μ΄ν°λ₯Ό μ λ¬νλ€. μ΄ XHRμ μ΄μ©ν΄ μλ²μμ λΉλκΈ° λ°©μμΌλ‘ λ°μ΄ν°λ₯Ό μ‘°νν΄ μ¬ μ μλ κ²μ΄λ€.
μλ²λ HTML, XML, JSON λ±μ λ°ννλλ° Ajaxλ₯Ό μν λ°μ΄ν° νμμ JSONμ μ¬μ©νλ κ²μ΄ μΌλ°μ μ΄λ€.
XMLHttpRequest κ°μ²΄
XMLHttpRequest κ°μ²΄λ μΉ λΈλΌμ°μ κ° μλ²μ λ°μ΄ν°λ₯Ό κ΅νν λ μ¬μ©νλ€. μΉ λΈλΌμ°μ κ° λ°±κ·ΈλΌμ΄λμμ μλ²μ κ³μν΄μ ν΅μ ν μ μλ κ²μ XMLHttpRequest κ°μ²΄λ₯Ό μ¬μ©νκΈ° λλ¬Έμ΄λ€.
open(): μλ²λ‘ λ³΄λΌ Ajax μμ²μ νμ μ€μ μ λ¬λ°©μ : μμ²μ μ λ¬ν λ°©μ (GET, POST)
URLμ£Όμ : μμ²μ μ²λ¦¬ν μλ²μ νμΌ μ£Όμ μ λ¬
λκΈ°μ¬λΆ : μμ²μ λκΈ°μμΌλ‘ μ λ¬ν μ§ λΉλκΈ°μμΌλ‘ μ λ¬ν μ§ μ¬λΆ
λΉλκΈ° true
λκΈ° false
send(): μμ±λ Ajaxμμ²μ μλ²λ‘ μ λ¬
Ajaxμμλ μ£Όλ‘ POST λ°©μμ μ¬μ©νμ¬ μμ²μ μ λ¬νλ€.
XMLHttpRequest.send() λ©μλλ₯Ό ν΅ν΄ μλ²μ Requestλ₯Ό μ μ‘νλ©΄ μλ²λ Responseλ₯Ό λ°νν΄ μ£Όλλ° μΈμ Responseκ° ν΄λΌμ΄μΈνΈμ λλ¬ν μ§λ μ μ μλ€.
μ΄λ XMLHttpRequest.onreadystatechange λ Responseκ° ν΄λΌμ΄μΈνΈμ λλ¬νμ¬ λ°μλ μ΄λ²€νΈλ₯Ό κ°μ§νκ³ μ½λ°±ν¨μλ₯Ό μ€ννμ¬ μ€λ€. μ¦, req.onreadystatechangeλ readyState propertyκ° λ³κ²½λ λλ§λ€ νΈμΆλλ EventHandlerμ΄λ€.
readyState: Requestμ λ³νκ° λ°μν κ²½μ°μ readyStateμ propertyκ° λ³κ²½λλ€. responseκ° ν΄λ¦¬μ΄μΈνΈμ λλ¬νλμ§λ₯Ό μΆμ ν μ μλ κ°μ΄λ€.
Value
State
Description
0
UNSENT
XMLHttpRequest.open() λ©μλ νΈμΆ μ΄μ XMLHttpRequest κ°μ²΄κ° μμ±
1
OPENED
XMLHttpRequest.open() λ©μλ νΈμΆ μλ£ open() λ©μλκ° μ±κ³΅μ μΌλ‘ μ€ν
2
HEADERS_RECEIVED
XMLHttpRequest.send() λ©μλ νΈμΆ μλ£ λͺ¨λ μμ²μ λν μλ΅μ΄ λμ°©
3
LOADING
μλ² μλ΅ μ€(XMLHttpRequest.responseText λ―Έμμ± μν) μμ²ν λ°μ΄ν°λ₯Ό μ²λ¦¬ μ€μΈ κ²½μ°
4
DONE
μλ² μλ΅ μλ£
status : μλ²μ λ¬Έμ μνλ₯Ό λνλΈλ€.
200 (μ μ μλ΅)
abort : ajaxμμ²μ μ·¨μνκ±°λ μ€λ¨ν΄μΌνλ κ²½μ°μ μ¬μ©νλ€.
JSON
JSON(JavaScript Object Notation)μ JavaScriptμ κ°μ²΄ 리ν°λ΄κ³Ό λ§€μ° ν‘μ¬νλ€. νμ§λ§ JSONμ μμν ν μ€νΈλ‘ ꡬμ±λ λ°μ΄ν°μ΄λ€.
리ν°λ΄ : μ½λμμμ λ°μ΄ν°λ₯Ό νννλ λ°©μ
ν€λ λ°λμ ν°λ°μ΄ν("")λ‘ λλ¬μΈμΌνλ€. (μμ λ°μ΄ν(') λΆκ°)
JSON.stringify()
JSON.stringify() λ©μλλ κ°μ²΄λ₯Ό JSON νμμ λ¬Έμμ΄λ‘ λ³ννλ€.
JSON.parse()
JSON.parse() λ JSON λ°μ΄ν°λ₯Ό κ°μ§ λ¬Έμμ΄μ κ°μ²΄λ‘ λ³ννλ€.
μλ²λ‘λΆν° λΈλΌμ°μ λ‘ μ μ‘λ JSON λ°μ΄ν°λ λ¬Έμμ΄μ΄λ€. μ΄ λ¬Έμμ΄μ κ°μ²΄νν΄μΌνλλ° μ΄κ²μ Deserializing(μμ§λ ¬ν) λΌ νλ€. JSON.parse() λ₯Ό μ¬μ©ν΄ λ¬Έμμ΄μ κ°μ²΄λ‘ λ³νν μ μλ€.
JSONP
μμ²μ μν΄ μΉνμ΄μ§κ° μ λ¬λ μλ²μ λμΌν λλ©μΈμ μλ²λ‘ μ λ¬λ λ°μ΄ν°λ λ¬Έμ μμ΄ μ²λ¦¬ν μ μλ€. νμ§λ§ 보μμμ μ΄μ λ‘ λ€λ₯Έ λλ©μΈ(http, https ν¬νΈκ° λ€λ₯Έ κ²½μ° ν¬ν¨)μΌλ‘λΆν° μμ²(CROSS DOMAIN)μ μ νλλ€. μ΄κ²μ Same-origin policy λμΌμΆμ²μμΉ μ΄λΌνλ€.

λμΌμΆμ²μμΉ μ°ννλ λ°©λ²
Proxy
JSONP : script νκ·Έμ μλ³Έ μ£Όμμ λν μ μ½μ΄ μ‘΄μ¬νμ§ μλκ²μ μ΄μ©νμ¬ λ€λ₯Έ λλ©μΈμ μλ²μμ λ°μ΄ν°λ₯Ό μμ§νλ λ°©λ²μ΄λ€. μμ μ μλ²μ ν¨μλ₯Ό μ μνκ³ λ€λ₯Έ λλ©μΈμ μλ²μ μ»κ³ μ νλ λ°μ΄ν°λ₯Ό μΈμλ‘ νλ ν¨μ νΈμΆλ¬Έμ λ‘λνλ λ°©λ²μ΄λ€.

Cross-Origin Resource Sharing : HTTP ν€λμ μΆκ°μ μΌλ‘ μ 보λ₯Ό μΆκ°νμ¬ λΈλΌμ°μ μ μλ²κ° μλ‘ ν΅μ ν΄μΌνλ€λ μ¬μ€μ μΈμ§νλλ‘ νλ λ°©λ²μ΄λ€.
jQuery Ajax
jQueryλ Ajax μμ²κ³Ό μλ΅μ μν΄ μ μ©ν λ©μλλ€μ μ 곡ν΄μ€λ€.
Low-Level Interface
μ¬κΈ°μ [] λ λ°λ³΅ν΄μ μ¬μ©ν μ μλ€λ μλ―Έμ΄λ€.
settingsλ Ajax μμ² μ€μ μ λ³΄λ‘ key,valueμ μμΌλ‘ μ΄λ£¨μ΄μ§ κ°μ²΄μ΄λ€.
settings
Description
λΉκ³
url
μμ²μ΄ μ μ‘λ url
method
http μμ² λ°©μ (GET/POST)
version added: 1.9.0
type
methodμ alias (GET/POST)
1.9.0 μ΄μ λ²μ μμ μ¬μ©
data
μλ²λ‘ μ λ¬λ λ°μ΄ν°
dataType
μλ²λ‘λΆν° λ°νλ λ°μ΄ν°μ type default: Intelligent Guess (xml, json, jsonp, script, html, text)
async
μμ² μ λκΈ°ν μ¬λΆ(TRUE/FALSE) κΈ°λ³Έμ λΉλκΈ°(asynchronous) μμ²
timeout
μμ² μ ν μκ°. μ ν μκ° μμ μμ²μ΄ μλ£λμ§ μμΌλ©΄ μμ²μ μ·¨μνκ±°λ error μ½λ°±μ νΈμΆ.
jsonpCallback
JSONP μμ²μ μν μ½λ°± ν¨μ μ΄λ¦
success
μμ² μ±κ³΅ μ΄λ²€νΈ νΈλ€λ¬
error
μμ² μ€ν¨ μ΄λ²€νΈ νΈλ€λ¬
complete
μμ² μλ£ μ΄λ²€νΈ νΈλ€λ¬
cache
λΈλΌμ°μ μ μν΄ μμ²λλ νμ΄μ§λ₯Ό μΊμν μ μλ€.(TRUE/FALSE)
beforeSend
http μμ² μ μ λ°μνλ μ΄λ²€νΈ νΈλ€λ¬
global
μ μν¨μ νμ±ν μ¬λΆ μ€μ
jqXHRμ jQuery HTTP Requestλ‘, λΈλΌμ°μ XMLHttpRequest Objectμ μ§ν©μ΄λ€. dataμ κ±°μ λΉμ·ν κ°μ μ§λκ³ μλλ° μΆκ°μ μΌλ‘ ν΅μ status μ readyStatus λ±μ 보λ΄μ€λ€.
Shorthand Method
jQuery.get()
HTTP GET requestλ₯Ό μ¬μ©νμ¬ μλ²λ‘λΆν° λ°μ΄ν°λ₯Ό λ‘λνλ€.
jQuery.getJSON()
HTTP GET requestλ₯Ό μ¬μ©νμ¬ μλ²λ‘λΆν° JSON-encoded λ°μ΄ν°λ₯Ό λ‘λνλ€.
jQuery.getScript()
HTTP GET requestλ₯Ό μ¬μ©νμ¬ μλ²λ‘λΆν° JavaScript νμΌμ λ‘λν ν μ€ννλ€.
jQuery.post()
HTTP GET requestλ₯Ό μ¬μ©ν΄ μλ²λ‘λΆν° λ°μ΄ν°λ₯Ό λ‘λνλ€.
.load()
μλ²λ‘λΆν° HTML λ°μ΄ν°λ₯Ό λ‘λνκ³ λ§€μΉνλ€.
μ°Έμ‘°νμ΄μ§
Last updated