본문 바로가기
JAVA/JavaScript

실시간 데이터 변경 setTimeout

by java나유 2022. 8. 1.

HTML파일

<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="X-UA-Compatible" content="IE=edge, chrome=1">
<title>0729 Ajax 복습5 실시간 데이터 변경 </title>
<script src="./js/jquery.js"></script>

<script>
//$(function () {
	/* setTimeout- 지속성 형태로 구성하는 방식
	(fn안에 하나, 밖에 하나 쓰면 계속 찍힘 1회성->다회성)
	$.fn.aaa= function(){
		console.log("test");
		setTimeout($.fn.aaa,1000);
	}
	setTimeout($.fn.aaa,1000);
	//setTimeout($.fn.aaa,1000); //1회성 시간타이머
	//setInterval($.fn.aaa,1000); //지속적 시간타이머
	*/
	/*
	$.fn.bbb=function(){
	$("#dataview").html("test"); //append쓰면 누적 됨!-! 
	//text = innerText html= innerhtml 
	setTimeout($.fn.bbb,2000);
	}
	setTimeout($.fn.bbb,2000);
	});*/
	
$.fn.ccc=function(){
		
	$.ajax({
		url:"./ex6.do",
		method:"GET",
		dataType:"text",
		cache:false,
		success:function($data){ //데이터 받기 java에서
			$("#dataview").html($data);
		
		},
		error:function(){
			console.log("통신오류");
		}
	});
	setTimeout($.fn.ccc,5000); //덜렁 혼자 setTimeout($.jax,2000); 있을 수는 없음 
	}	
	setTimeout($.fn.ccc,0); //setInterval 2개는 사용하지않음
	
</script>
<script>




</script>



</head>
<body>
<div id="dataview"></div>
</body>
</html>

자바 파일

package ex;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class ex6 extends HttpServlet {
	
	private int number=0;
	private static final long serialVersionUID = 1L;
    
    public ex6() {
       
    }


	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("utf-8");
		response.setContentType("text/html;charset=utf-8");
		PrintWriter pr=response.getWriter();
		//response.getWriter().print(false); 이것도됨
		String news[]= {"초등학교 1학년 1년 앞당겨진다.",
		               "한국 우주탐사선 '다누리' 내달 5일...",
		               "우영우 '열풍' 세계로 번졌다...",
		               "열대야, 폭염계속... 제5호 태풍 송다 발달"
		};
		String calldata =news[number];
		this.number++;
		pr.print(calldata);
		if(this.number==news.length) {
			this.number=0;
		}
		
		
		//System.out.println(news[0]);
	}

	
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
	}

}

 

출력은 배열에 담긴 뉴스 제목들이 5초마다 바뀌고 

배열이 끝나면 처음으로 리셋된다.

728x90

댓글