본문 바로가기
CLASS/AJAX

#1-2 / ajax + json(key가 있는 배열) => 5초에 한번씩 실행

by hingu 2024. 6. 20.

json의 [ ] 안에 { } 로 들어갈 시 key배열 ! => 백엔드가 가장 많이 만드는 형태

key배열은 { }에 넣을것!!

 

나중에 mysql의 coloumn명이 key가 됩니다

대표키는 table명

[
    {"seq": 1,"product":"모니터","price":195000},
    {"seq": 3,"product":"냉장고","price":295000},
    {"seq": 4,"product":"에어컨","price":395000},
    {"seq": 9,"product":"세탁기","price":495000}
]

 

 

👀 변수 형태의 function 

=> 변수 형태의 function이 먼저 읽힘

//일반 function
function aaa(){
    alert("function")
}

//변수 형태의 function 
var aaa = function(){
    alert("변수 function")

};

var bbb = function(){
    return "Testbbb";
}

aaa(); //변수 function 출력
console.log(bbb()); //Test1 출력

// 2가지 기능을 다쓰기 위해 사용 : 복합함수
var ccc= new Array();
ccc.test = function(){ //test라고 작명
    ccc.push("testccc");
    return ccc;
}
console.log(ccc.test()); //배열 ccc가 출력됨

 

🔽 https://dev-eunse.tistory.com/159 의 예제에서 변수형태의 function 으로 ajax 통신하는 방법 => 확 줄이는 방법

var data;
var html = new XMLHttpRequest(); //통신 XHR 생성
html.onreadystatechange = function(){ //통신에 대한 성공,실패,오류..등 체크
    if(html.readyState == 4 && html.status == 200){
        data = JSON.parse(this.response);

        //통신하고 나서 작동되어야 함
          //(즉시 실행되는 function보다 ajax통신이 느려서 밖에다 작성시 undifined)
        //htmlcode();  실행할 함수는 여기다!
    }
}
var v= new Date();
html.open("GET","./member.json?v="+v,true);
html.send();

 


 

⚡ ajax + json(key가 있는 배열) => 5초에 한번씩 띄우기
<body>
	<div id="box"></div>
</body>

<script type="text/javascript">
	var data;
	
	//5초에 한번씩 data를 새롭게 load하기 위해 function으로 묶음
	function dataloads(){ 
		var html = new XMLHttpRequest(); //통신 XHR 생성
		html.onreadystatechange = function(){ //통신에 대한 성공,실패,오류..등 체크
			if(html.readyState == 4 && html.status == 200){
				data = JSON.parse(this.response);
				
				//통신하고 나서 작동되어야 함
				  //(즉시실행되는 function보다 ajax가 느려서 밖에 작성시 undifined)
				htmlcode(); 
			}
		}
		var v= new Date();
		html.open("GET","./member.json?v="+v,true);
		html.send();
	}
	setInterval(dataloads,5000); //5초에 한번씩 호출
	
	function htmlcode(){
		//console.log(data); //전역변수 data - 2차배열
		
		var h = document.getElementById("box");
		var code = "";
		data.forEach(function(a,b,c){
			//a : 자기 자신 , b : index 번호 , c : 배열 전체(잘안씀)
			code += `
			<span>고유번호 : `+a["seq"]+`</span>
			<span>상품명 : `+a["product"]+`</span>
			<span>가격 : `+a["price"]+`</span><br>
			`;
		})
		h.innerHTML = code;
	}
</script>


❗ json data가 추가,삭제,변경 되어도 5초에 한번씩 실시간으로 반영됨

5초에한번씩 반영중

'CLASS > AJAX' 카테고리의 다른 글

#3-1 / ajax + .do  (0) 2024.07.02
#2-1 / id 중복체크 연습용(ajax) - POST  (0) 2024.06.24
#1-4 / js, jquery - 외부 data load (CORS 해결)  (0) 2024.06.20
#1-3 / 🌺 ajax(jquery)  (0) 2024.06.20
#1-1 / 🌺 ajax(javascript) 기본 구조  (0) 2024.06.20