[JavaScript] Ajax

JUNBEOM PARKยท2022๋…„ 4์›” 4์ผ
0

๐Ÿ“ฐ JavaScript

๋ชฉ๋ก ๋ณด๊ธฐ
9/9
post-thumbnail

๐Ÿค” Ajax ?

Ajax๋ž€ Asynchronous JavaScript and XML์˜ ์•ฝ์ž์ด๋‹ค.
Ajax๋Š” ๋น ๋ฅด๊ฒŒ ๋™์ž‘ํ•˜๋Š” ๋™์ ์ธ ์›น ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ๊ฐœ๋ฐœ ๊ธฐ๋ฒ• ์ค‘ ํ•˜๋‚˜์ด๋‹ค.

Ajax๋Š” ์›น ํŽ˜์ด์ง€ ์ „์ฒด๋ฅผ ๋‹ค์‹œ ๋กœ๋”ฉํ•˜์ง€ ์•Š๊ณ ๋„, ์›น ํŽ˜์ด์ง€์˜ ์ผ๋ถ€๋ถ„๋งŒ์„ ๊ฐฑ์‹ ํ•  ์ˆ˜ ์žˆ๋‹ค.
์ฆ‰ Ajax๋ฅผ ์ด์šฉํ•˜๋ฉด ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์˜์—ญ์—์„œ ์„œ๋ฒ„์™€ ํ†ต์‹ ํ•˜์—ฌ, ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ์›น ํŽ˜์ด์ง€์˜ ์ผ๋ถ€๋ถ„์—๋งŒ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด๋•Œ JSON, XML, HTML, ํ…์ŠคํŠธ ํŒŒ์ผ ๋“ฑ๊ณผ ๊ฐ™์€ ํ˜•ํƒœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.

Ajax์˜ ์žฅ์ 

Ajax๋ฅผ ์ด์šฉํ•˜๋ฉด ์—ฌ๋Ÿฌ ์žฅ์ ์ด ์žˆ๋‹ค.

  1. ์›น ํŽ˜์ด์ง€ ์ „์ฒด๋ฅผ ๋‹ค์‹œ ๋กœ๋”ฉํ•˜์ง€ ์•Š๊ณ ๋„, ์›น ํŽ˜์ด์ง€์˜ ์ผ๋ถ€๋ถ„๋งŒ์„ ๊ฐฑ์‹ ํ•  ์ˆ˜ ์žˆ๋‹ค.
  2. ์›น ํŽ˜์ด์ง€๊ฐ€ ๋กœ๋“œ๋œ ํ›„์— ์„œ๋ฒ„๋กœ ๋ฐ์ดํ„ฐ ์š”์ฒญ์„ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋‹ค.
  3. ์›น ํŽ˜์ด์ง€๊ฐ€ ๋กœ๋“œ๋œ ํ›„์— ์„œ๋ฒ„๋กœ ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.
  4. ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์˜์—ญ์—์„œ ์„œ๋ฒ„๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋‹ค.

Ajax์˜ ํ•œ๊ณ„

Ajax๋ฅผ ์ด์šฉํ•˜๋ฉด ์—ฌ๋Ÿฌ ์žฅ์ ์„ ๊ฐ€์ง€์ง€๋งŒ, Ajax๋กœ๋„ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ผ๋“ค์€ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์—†๋‹ค.

  1. Ajax๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•˜๋Š” ํด๋ผ์ด์–ธํŠธ ํ’€๋ง ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•ด, ์„œ๋ฒ„ ํ‘ธ์‹œ ๋ฐฉ์‹์˜ ์‹ค์‹œ๊ฐ„ ์„œ๋น„์Šค๋Š” ๋งŒ๋“ค ์ˆ˜ ์—†๋‹ค.
  2. Ajax ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ํฌํ•จ๋œ ์„œ๋ฒ„๊ฐ€ ์•„๋‹Œ ๋‹ค๋ฅธ ์„œ๋ฒ„๋กœ Ajax ์š”์ฒญ์„ ๋ณด๋‚ผ ์ˆ˜ ์—†๋‹ค.
  3. ํด๋ผ์ด์–ธํŠธ์˜ PC๋กœ Ajax ์š”์ฒญ์„ ๋ณด๋‚ผ ์ˆ˜ ์—†๋‹ค.



Ajax์˜ ๋™์ž‘ ์›๋ฆฌ




Ajax์— ๊ด€๋ จ๋œ jQuery ์ปค๋งจ๋“œ

load(url, parmeters, callback)

URL๊ณผ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ Ajax์š”์ฒญ์„ ์ „์†ก, callback ํ•จ์ˆ˜๋Š” ์š”์ฒญ ์™„๋ฃŒ์‹œ ํ˜ธ์ถœ, ์‘๋‹ต ํ…์ŠคํŠธ๋Š” ์ผ์น˜ํ•˜๋Š” ์—˜๋ฆฌ๋จผํŠธ์˜ ์ปจํ„ด์ฒด๋ฅผ ๋Œ€์ฒดํ•˜๊ณ  HTML ๊ฒฐ๊ณผ๊ฐ’์ผ ๊ฒฝ์šฐ ์‚ฌ์šฉ์— ์šฉ์ดํ•˜๋‹ค.

url : ์š”์ฒญ์ด ์ „์†ก๋˜๋Š” ์„œ๋ฒ„์ธก URL
parameters : URL์— ์ „๋‹ฌํ•˜๊ณ ์ž ํ•˜๋Š” data
callback : ์‘๋‹ต ๊ฒฐ๊ณผ ๋ฐ์ดํ„ฐ๊ฐ€ ์ผ์น˜ํ•˜๋Š” ์—˜๋ฆฌ๋จผํŠธ๋กœ ๋กœ๋“œ ๋œ ์ดํ›„ ํ˜ธ์ถœ ๋˜๋Š” ํ•จ์ˆ˜


์˜ˆ์ œ

$(function(){
	$('#letter-a a').click(function(){ 
		$('#dictionary').hide().load('a.html', function(){
			$(this).fadeIn();
		});
		
		return false;
	})
});



get(url, parameters, callback), post(url, parameters, callback)

URL์„ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ฒ„์— ๋Œ€ํ•œ GET,POST ์š”์ฒญ์„ ์ „์†ก
๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ์ฟผ๋ฆฌ ๋ฌธ์ž์—ด๋กœ ์ „๋‹ฌ

url : ์š”์ฒญ์ด ์ „์†ก๋˜๋Š” ์„œ๋ฒ„์ธก URL
parameters : URL์— ๋ง๋ถ™์ด๋Š” ์ฟผ๋ฆฌ ๋ฌธ์ž์—ด์„ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ์ด๋ฆ„๊ณผ ๊ฐ’์˜ ์Œ์œผ๋กœ ํ”„๋กœํผํ‹ฐ๋ฅผ ์ง€๋‹Œ ๊ฐ์ฒด
callback : ์‘๋‹ต ๊ฒฐ๊ณผ ๋ฐ์ดํ„ฐ๊ฐ€ ์ผ์น˜ํ•˜๋Š” ์—˜๋ฆฌ๋จผํŠธ๋กœ ๋กœ๋“œ ๋œ ์ดํ›„ ํ˜ธ์ถœ ๋˜๋Š” ํ•จ์ˆ˜



$.getJSON(url, parameters, callback)

URL์„ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ฒ„์— ๋Œ€ํ•œ GET ์š”์ฒญ์„ ์ „์†ก
๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ์ฟผ๋ฆฌ ๋ฌธ์ž์—ด๋กœ ์ „๋‹ฌ
์‘๋‹ต์€ JSON ๋ฌธ์ž์—ด๋กœ ํ•ด์„๋˜๋ฉฐ ๊ฒฐ๊ณผ๋Š” callbackํ•จ์ˆ˜์— ์ „๋‹ฌ

url : ์š”์ฒญ์ด ์ „์†ก๋˜๋Š” ์„œ๋ฒ„์ธก URL
parameters : URL์— ๋ง๋ถ™์ด๋Š” ์ฟผ๋ฆฌ ๋ฌธ์ž์—ด์„ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ์ด๋ฆ„๊ณผ ๊ฐ’์˜ ์Œ์œผ๋กœ ํ”„๋กœํผํ‹ฐ๋ฅผ ์ง€๋‹Œ ๊ฐ์ฒด
callback : ์‘๋‹ต ๊ฒฐ๊ณผ ๋ฐ์ดํ„ฐ๊ฐ€ ์ผ์น˜ํ•˜๋Š” ์—˜๋ฆฌ๋จผํŠธ๋กœ ๋กœ๋“œ ๋œ ์ดํ›„ ํ˜ธ์ถœ ๋˜๋Š” ํ•จ์ˆ˜


์˜ˆ์ œ

$(function(){
	$('#letter-b a').click(function(){
		$.getJSON('b.json', function(data){ //callbackํ•จ์ˆ˜์˜ ํŒŒ๋ผ๋ฏธํ„ฐ ๋ณ€์ˆ˜์—๋Š” ์„œ๋ฒ„์˜ ๊ฒฐ๊ณผ๊ฐ’์ด ์˜จ๋‹ค.
			//๊ฒฐ๊ณผ๊ฐ’: [{},{}] -> ๋ฐฐ์—ด
			$('#dictionary').empty();
			$.each(data, function(index, item){
				var html = '<div class="entry">';
				html += '<h3 class="term">' + item.term + '</h3>';
				html += '<div class="part">' + item.part + '</div>';
				html += '<div class="definition">' + item.definition + '</div>';
				html += '</div>';
				
				$('#dictionary').append(html);
			});
		});
		
		return false;
	});
});



$.ajax(options)

options๋ฅผ ํ†ตํ•ด Ajax ์š”์ฒญ์„ ์ „์†ก

options : ์š”์ฒญ์— ๋Œ€ํ•œ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ •์˜ ํ•˜๋Š” ํ”„๋กœํผํ‹ฐ ๊ฐ์ฒด

$.ajax({
	url : 'b.json',
	type : 'get',
    dataType : 'json',
	success : function(data){
	}
    
    ...
})


profile
DB ์—”์ง€๋‹ˆ์–ด๐Ÿ‘

0๊ฐœ์˜ ๋Œ“๊ธ€