๋ฐ์ํ
jQuery์์ $.getJSON๊ณผ $.ajax ๋น๊ต ์ ๋ฆฌ
์น ๊ฐ๋ฐ์ ํ๋ค ๋ณด๋ฉด ์๋ฒ์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ฌ ๋ jQuery์ Ajax ๊ธฐ๋ฅ์ ์์ฃผ ์ฌ์ฉํ๊ฒ ๋ฉ๋๋ค.
์ด๋ ๊ฐ์ฅ ๋ง์ด ์ฐ์ด๋ ๊ฒ์ด ๋ฐ๋ก $.ajax์ ๊ทธ ์ถ์ฝ ๋ฒ์ ์ธ $.getJSON์ด์์.
๋ ๋ฉ์๋๋ ๋น์ทํด ๋ณด์ด์ง๋ง ์ฐ์์์ ์ต์ ๋ฒ์์์ ์ฐจ์ด๊ฐ ์์ต๋๋ค.
1. $.getJSON
$.getJSON('/geoserver/wfs', { param1: 'A', param2: 'B' })
.done(function(data) {
console.log("์ฑ๊ณต", data);
})
.fail(function() {
console.log("์คํจ");
})
.always(function() {
console.log("๋ฌด์กฐ๊ฑด ์คํ");
});
- ๊ธฐ๋ณธ์ ์ผ๋ก GET ์์ฒญ๋ง ๊ฐ๋ฅ.
- ์๋ต์ ๋ฌด์กฐ๊ฑด JSON์ผ๋ก ํ์ฑํด์ค.
- ๊ฐ๋จํ๊ฒ WFS/REST API JSON ํธ์ถํ ๋ ์ ์ฉ.
๋ด๋ถ์ ์ผ๋ก๋ $.ajax์ type: "GET", dataType: "json"์ ๋ฃ์ ๊ฒ๊ณผ ๋์ผ
2. $.ajax
$.ajax({
url: '/geoserver/wfs',
method: 'GET', // GET, POST, PUT ๋ฑ ๋ค ๊ฐ๋ฅ
dataType: 'json', // ์๋ต ํ์
(json, xml, text ๋ฑ)
data: { param1: 'A', param2: 'B' },
success: function(data) {
console.log("์ฑ๊ณต", data);
},
error: function(xhr, status, error) {
console.log("์คํจ", status, error);
},
complete: function(xhr, status) {
console.log("๋ฌด์กฐ๊ฑด ์คํ", status);
}
});
- HTTP ๋ฉ์๋(GET, POST, PUT, DELETE ๋ฑ) ๋ค ์ง์.
- dataType, contentType, headers, timeout ๊ฐ์ ์ธ๋ถ ์ต์ ์กฐ์ ๊ฐ๋ฅ.
- success, error, complete ๊ฐ์ ์ฝ๋ฐฑ ๋ฐฉ์ ์ ๊ณต.
- .done/.fail/.always ๊ฐ์ Promise ๋ฐฉ์๋ ๊ฐ๋ฅ ($.ajax(...).done(...)).
3. ๋น๊ต ์์ฝ
| ๊ตฌ๋ถ | $.getJSON | $.ajax |
| ์์ฒญ ๋ฐฉ์ | GET๋ง ๊ฐ๋ฅ | GET, POST, PUT, DELETE๋ฑ ๊ฐ๋ฅ |
| ์๋ต ์ฒ๋ฆฌ | JSON๋ง ์๋ ํ์ฑ | json, xml, text๋ฑ ์ง์ ๊ฐ๋ฅ |
| ์ฝ๋ ๊ฐ๊ฒฐ์ฑ | ๋จ์ JSON GET์๋ ์งง๊ณ ํธ๋ฆฌ | ์ต์ ๋ง์์ ๊ธธ์ง๋ง ์ ์ฐ |
| ์ฝ๋ฐฑ/์ฒด์ด๋ | done, fail, always | success, error, complete + ์ฒด์ด๋ ๊ฐ๋ฅ |
| ๋ด๋ถ ๋์ | $.ajax์ ์ถ์ฝํ | ํ ์ต์ ์ ์ด ๊ฐ๋ฅ |
4. ์ ๋ฆฌ
- ๋จ์ํ JSON GET ์์ฒญ๋ง ํ๋ค → $.getJSON
- POST ์์ฒญ, ๋ค๋ฅธ ์๋ต ํ์ , ํค๋/ํ์์์ ๋ฑ ์ต์ ์ด ํ์ํ๋ค → $.ajax
์ฆ, ์ํฉ์ ๋ฐ๋ผ ์ ์ ํ ์ ํํ๋ฉด ๋ฉ๋๋ค. ๊ฐ๋จํ ์ธ ๋ $.getJSON, ๋ณต์กํ๊ฒ ์ ์ดํ ๋ $.ajax๊ฐ ์ ๋ต์ด์์.
๋ฐ์ํ