2021. 11. 2. 11:34ใHTML + CSS + JS/JS ์๋ฐ์คํฌ๋ฆฝํธ
1. Ajax ๊ด๋ จ ๋ฉ์๋
Ajax๋ ํด๋ผ์ด์ธํธ๊ฐ ๋น๋๊ธฐ ๋ฐฉ์์ผ๋ก ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ด์ฉํ์ฌ ํ๋ฉด ์ ํ ์์ด ์๋ฒ์ธก์ ์๋ฃ xml, html, json ๋ฅผ ์์ฒญํ ๋ ์ฌ์ฉํ๋ค.
- Ajax ๊ด๋ จ ๋ฉ์๋
load() : ์ธ๋ถ ์ฝํ ์ธ ๋ฅผ ๊ฐ์ ธ์ฌ ๋ ์ฌ์ฉํ๋ค.
$.ajax() : ๋ฐ์ดํฐ๋ฅผ ์๋ฒ์ http post, get ๋ฐฉ์์ผ๋ก ์ ์กํ ์ ์์ผ๋ฉฐ, html, xml, json, ํ ์คํธ ์ ํ์ ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ ์ ์๋ ํตํฉ์ ์ธ ๋ฉ์๋์ด๋ค. -> $.post() , $.get(), $.getJSON()์ ํฉ์ณ ๋์ ๊ฒ์ด๋ค.
$.post() : ๋ฐ์ดํฐ๋ฅผ ์๋ฒ์ http post ๋ฐฉ์์ผ๋ก ์ ์กํ ํ ์๋ฒ ์ธก์ ์๋ต์ ๋ฐ์ ๋ ์ฌ์ฉํ๋ค.
$.get() : ๋ฐ์ดํฐ๋ฅผ ์๋ฒ์ http get๋ฐฉ์์ผ๋ก ์ ์กํ ํ ์๋ฒ ์ธก์ ์๋ต์ ๋ฐ์ ๋ ์ฌ์ฉํ๋ค.
$.getJSON() : ๋ฐ์ดํฐ๋ฅผ ์๋ฒ์ http get ๋ฐฉ์์ผ๋ก ์ ์กํ ํ ์๋ฒ์ธก์ ์๋ต์ json ํ์์ผ๋ก ๋ฐ์ ๋ ์ฌ์ฉํ๋ค.
$.getScrit() : ajax๋ฅผ ์ด์ฉํ์ฌ ์ธ๋ถ ์๋ฐ ์คํฌ๋ฆฝํธ๋ฅผ ๋ถ๋ฌ์จ๋ค.
.ajaxStop(function() {..}) : ๋น๋๊ธฐ ๋ฐฉ์์ผ๋ก ์๋ฒ์ ์๋ต ์์ฒญ์ด ์๋ฃ๋์์ ๋ ํจ์๊ฐ ์คํ๋๋ค.
.ajaxSucess(function() {..}) : ajax ์์ฒญ์ด ์ฑ๊ณต์ ์ผ๋ก ์๋ฃ๋๋ฉด ํจ์๊ฐ ์คํ๋๋ค.
.ajaxComplete(function() {..}) : ajax ํต์ ์ด ์๋ฃ๋๋ฉด ํจ์๊ฐ ์คํ๋๋ค.
1๏ธโฃ load() ๋ฉ์๋
load() ๋ฉ์๋๋ ์ฌ์ฉ์๊ฐ ์ง์ ํ url ์ฃผ์์ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๊ณ ์ธ๋ถ ์ฝํ ์ธ ๋ฅผ ์์ฒญํ์ฌ ๊ฐ์ ธ์ฌ ๋ ์ฌ์ฉํ๋ค.
2๏ธโฃ $.ajax() ๋ฉ์๋
$.ajax() ๋ฉ์๋๋ ์ฌ์ฉ์๊ฐ ์ง์ ํ url ๊ฒฝ๋ก์ ํ์ผ์ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๊ณ ์ ๋ ฅํ url ๊ฒฝ๋ก ํ์ผ๋ก๋ถํฐ ์์ฒญํ ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ์จ๋ค.
$.ajax({
url : "์ ์ก ํ์ด์ง",
type : "์ ์ก ๋ฐฉ์",
data : "์ ์กํ ๋ฐ์ดํฐ",
dataType : "์์ฒญํ ๋ฐ์ดํฐ ํ์ (html, json, xml, text, jsonp)",
success : function(data) {
์ ์ก์ ์ฑ๊ณตํ๋ฉด ์คํํ ์ฝ๋;
},
error : function(data) {
์ ์ก์ ์คํจํ๋ฉด ์คํํ ์ฝ๋;
}
});
- $.ajax() ๋ฉ์๋์ ์ต์ ์ข ๋ฅ
async : ํต์ ์ ๋๊ธฐ, ๋น๋๊ธฐ ๋ฐฉ์์ผ๋ก ์ค์ ํ๋ ์ต์ ์ด๋ค. ๊ธฐ๋ณธ๊ฐ true (๋น๋๊ธฐ)
beforeSend : ์์ฒญํ๊ธฐ ์ ์ ํจ์๋ฅผ ์คํํ๋ ์ด๋ฒคํธ ํธ๋ค๋ฌ์ด๋ค.
cache : ์์ฒญํ ํ์ด์ง์์ ์ธํฐ๋ท์ ์บ์๋ฅผ ์ ์ฅํ ์ง์ ์ฌ๋ถ๋ฅผ ์ค์ ํ๋ค. ๊ธฐ๋ณธ๊ฐ์ true
complete : Ajax๊ฐ ์๋ฃ๋์์ ๋ ํจ์๋ฅผ ์คํํ๋ ์ด๋ฒคํธ ํธ๋ค๋ฌ์ด๋ค.
contentType : ์๋ฒ๋ก ์ ์กํ ๋ฐ์ดํฐ์ content type์ ์ค์ ํ๋ค.
data : ์๋ฒ๋ก ์ ์กํ ๋ฐ์ดํฐ๋ฅผ ์ง์ ํ๋ค.
dataType : ์๋ฒ์์ ๋ฐ์์ฌ ๋ฐ์ดํฐ์ ํ์์ ์ง์ ํ๋ค.
error : ํต์ ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ ๋ ํจ์๋ฅผ ์คํํ๋ค.
success : Ajax๋ก ํต์ ์ด ์ ์์ ์ผ๋ก ์ด๋ค์ง๋ฉด ์ด๋ฒคํธ ํธ๋ค๋ฌ๋ฅผ ์คํํ๋ค.
timeout : ํต์ ์๊ฐ์ ์ ํํ๋ค. ์๊ฐ ๋จ์๋ ๋ฐ๋ฆฌ์ด์ด๋ค.
type : ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ๋ฐฉ์ get/post๋ฅผ ์ค์ ํ๋ค.
url : ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ํ์ด์ง๋ฅผ ์ค์ ํ๋ค. ๊ธฐ๋ณธ๊ฐ์ ํ์ฌ ํ์ด์ง
username : http ์ก์ธ์ค๋ฅผ ํ ๋ ์ธ์ฆ์ด ํ์ํ ๊ฒฝ์ฐ ์ฌ์ฉ์ ์ด๋ฆ์ ์ง์ ํ๋ค.
- Ajax ์ ์ก ๋ฐ์ดํฐ ๊ฐ๊ณต ๋ฉ์๋์ ์ข ๋ฅ
serialize() : ์ฌ์ฉ์๊ฐ ์ ๋ ฅ ์์์ ๊ฐ์ ์ ๋ ฅํ ๋ฐ์ดํฐ์ ์ ์ก ๋ฐฉ์์ 'name=value1 & name2 = value2,..'์ ๊ฐ์ ์ฟผ๋ฆฌ ์คํธ๋ง ํ์์ ๋ฐ์ดํฐ๋ก ๋ฐํ $("form").serialize();
serializeArray() : ์ฌ์ฉ์๊ฐ ์ ๋ ฅ ์์์ ๊ฐ์ ์ ๋ ฅํ ๋ฐ์ดํฐ์ ์ ์ก ๋ฐฉ์์ '[{name1: value1}, {name2:value2}, ...'์ ๊ฐ์ ๋ฐฐ์ด ๊ฐ์ฒด๋ก ๋ณํํด ๋ฐํํ๋ค. $("form").serializeArray();
$.param() : {name1 : value1 & name2 : valu2 ..} ์ ๊ฐ์ด ์์ฑ๋ ๊ฐ์ฒด๋ฅผ ๊ฐ๊ณตํด 'name1=value1 & name2=value2'์ ๊ฐ์ ์ฟผ๋ฆฌ ์คํธ๋ง ํ์์ ๋ฐ์ดํฐ๋ก ๋ฐํํ๋ค. $.param(Object);
JSON.parse() : ๊ฐ์ฒด ํํ๋ก ์์ํ ๋ฌธ์์ด ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ฒด๋ก ๊ฐ๊ณตํ์ฌ ๋ฐํํ๋ค. JSON.parse('{"name":"value"}');
JSON.stringify() : ๊ฐ์ฒด๋ฅผ ๋ฌธ์์ด ๋ฐ์ดํฐ๋ก ๊ฐ๊ณตํ์ฌ ๋ฐํํ๋ค. JSON.stringify({"name1":"value1" , "name2":"value2"});
2. Ajax๋ก JSON๋ฐ์ดํฐ ๋ฐ์ธ๋ฉํ๊ธฐ
๋น๋๊ธฐ ํต์ ๊ธฐ์ ์ ์ด์ฉํ์ฌ ์๋ฒ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์์ฒญํ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ HTML ๋ฌธ๋จ ํ๊ทธ์ ๊ฒฐํฉํ๋๊ฒ์ ๋ฐ์ธ๋ฉ์ด๋ผ๊ณ ํ๋ค.
โ JSON(JavaScript Object Notation)
json์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ ๋ ์ฌ์ฉํ๋ ํ์ค ํ์์ด๋ค. json์ ์์ฑ๊ณผ ๊ฐ์ผ๋ก ํ๋์ ์์ ์ด๋ฃจ๊ณ ์๋ค.
{"์์ฑ1" : "๊ฐ1", "์์ฑ2" : "๊ฐ2"}
์์ ์ json ๋ฐ์ดํฐ๊ฐ ์๋ค.
์ด๋
์ฌ๊ธฐ์ json, xml ๋ฐ์ดํฐ๋ฅผ ๋ค์ด ๋ฐ์์ ์ฌ์ฉํ๋ค.
์ฌ๊ธฐ์ data์๋ json ๋ฐ์ดํฐ๊ฐ ์ฐธ์กฐ๋๋ค.
ํ ์ด๋ธ ํ์์ผ๋ก ์ถ๋ ฅ๋๋ค.
3. Ajax๋ก XML ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉํ๊ธฐ
โ XML(eXtensible Markup Language) ํ์ฅ์ฑ ๋งํฌ์ ์ธ์ด
xml์ ํ์ฅ ๊ฐ๋ฅํ ์ธ์ด์ด๋ฏ๋ก ํ๊ทธ๋ช ์ ์ฌ์ฉ์๊ฐ ์์๋ก ์์ฑํ ์ ์๋ค.
์ฆ ์๋ฒ์ ๋ฐ์ดํฐ๋ก ๊ฐ๊ณตํ๋ ๊ฒ์ ์ด๋ ต์ง ์๊ธฐ ๋๋ฌธ์ xml์ ์ฃผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ฐฐํฌํ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉํ๋ค.
์์ ์ฌ์ดํธ์์ xml ๋ฐ์ดํฐ๋ฅผ ๋ค์ด๋ฐ์๋ค.
$.each() ๋ฉ์๋๋ ์ ์ด์ฟผ๋ฆฌ ๋ฐฐ์ด ๋ฉ์๋๋ก
์ ํ์๋ก ์ ํํ ์์๊ฐ ๋ฐฐ์ด์ ์์๋๋ก ์ ์ฅ๋๋ค.
๋ฐฐ์ด์ ์ ์ฅ๋ ์์๋ฅผ ์์๋๋ก ํ๋์ฉ ์ ํํ๋ฉด์ ์ธ๋ฑ์ค ์ ๋ณด๋ฅผ ๊ฐ์ ธ์จ๋ค.
https://hyejin.tistory.com/198?category=1019892
'HTML + CSS + JS > JS ์๋ฐ์คํฌ๋ฆฝํธ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JS + jquery] Ajax๋ก ๊ฐ๋จํ ๋ก๊ทธ์ธ ๋ง๋ค๊ธฐ (0) | 2021.11.02 |
---|---|
[JS + jquery] RSS ์ฐ๋ํ๊ธฐ (0) | 2021.11.02 |
[JS + jquery] Ajax (0) | 2021.11.02 |
[JS + jquery] ํจ๊ณผ ๋ฉ์๋์ ์ ๋๋ฉ์ด์ ๋ฉ์๋ ๊ธฐ์ด ์ฐ์ต๋ฌธ์ 1, 2 (0) | 2021.11.01 |
[JS + jquery] ์ ๋๋ฉ์ด์ ํจ๊ณผ ์ ์ด ๋ฉ์๋ (queue(), dequeue(), stop(), clearQueue(), finish(), delay() ) (0) | 2021.11.01 |