데이터베이스에 저장된 날짜를 기준으로, ajax통신하여 실시간으로 팝업

데이터베이스에 저장된 날짜를 기준으로, ajax통신하여 실시간으로 팝업

QA

데이터베이스에 저장된 날짜를 기준으로, ajax통신하여 실시간으로 팝업

답변 5

본문

데이터베이스에 저장된 날짜를 기준으로, ajax통신하여 실시간으로 팝업이 뜨게끔 할 수 있을까요?

 

예를들어 데이터베이스에,

no     name               date             memo

---------------------------------------------------

1      banana    2023-06-10 10:20:00    scal1

2      tomato    2023-06-13 11:10:00    scal1

3      apple      2023-06-17 14:15:00    scal1

 

값이 저장되있고, 오늘 날짜가 6월 13일 11시 00분 이라고 가정하게되면, 11시 10분인 데이터

2번 데이터베이스의 값을 10분전 즉 11시00분에  tomato라는 값이 웹브라우저상에 팝업으로 "tomato"라고뜨게끔 진행하려 하는데,

 

이게 ajax로 실시간으로 리플래시 없이 가능할지 여부판단이 좀 어려워서요.

 

 

이 질문에 댓글 쓰기 :

답변 5

ajax 예제는 구글링 하시면 많은 자료가 나오니 그중 마음에 드시는거 쓰시면되고요

 

실시간은 ajax 가 아니라 node.js 같은거 쓰셔야 하는데

자바스크립트로도 몇초 간격으로 채크할수 있습니다. 약간의 딜레이는 있지만...

 

https://webisfree.com/2014-10-23/[%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8]-%EC%9D%BC%EC%A0%95-%EC%8B%9C%EA%B0%84%EB%A7%88%EB%8B%A4-%EB%B0%98%EB%B3%B5-%EC%8B%A4%ED%96%89%ED%95%98%EB%8A%94-%ED%95%A8%EC%88%98-setinterval()-%7B%7D

위 링크 참조하셔서 공부하시면 되겠습니다~

 

귀찮으시면 의뢰로~~

제가 로컬타임죤과 디비타임죤때문에 너무 고심해서 아래와 같은 함수 하나 만들어 애용하던거에요.



function convertLocalTimezone (dateObj){
    var date = (dateObj)? dateObj : new Date();
    var s = new Date(date.getTime() - (date.getTimezoneOffset() * 60000));
    var d = s.toISOString();
    var d1 = d.substring(0, 10);
    var d2 = d1.split('-');
    var d3 = d.substring(11, 19);
    var d4 = d3.split(':');
    var obj = {};
    obj.full = s;
    obj.fullDate = d1;
    obj.year = d2[0];
    obj.month = d2[1];
    obj.date = d2[2];
    obj.fullTime = d3;
    obj.hour = d4[0];
    obj.minute = d4[1];
    obj.second = d4[2];
    return obj;
}

let db_date = convertLocalTimezone(new Date('2023-06-13 11:10:00'));
let now = convertLocalTimezone();
if(now.fullDate == db_date.fullDate && now.hour == db_date.hour) {
    if((db_date.minute-now.minute) <= 10 && (db_date.minute-now.minute) > 0) {
            // 팝업창 현시
    }
}
 

 

호스팅을 이용하신다면 완벽하게 해당 시간대에 자동으로 스케쥴링 이벤트를 넣는건 어렵고

가상호스팅이나 기타 클라우드를 이용하신다면 crontab 이벤트를 적용해서 가능합니다

 

호스팅이라면 해당 테이블을 조회하는 함수를 만들어서 head.php 같은곳에 넣어서 사용자가 홈페이지를 사용할때 계속 실행되게 하는 방법으로 현재시간과 비교해서 표시할수 있습니다.

 

crontab을 사용하실 수 있다면 1시간 간격정도의 스케쥴링을 추가해서 마찬가지로 해당 함수를 자동으로 실행하게끔 하면 됩니다.

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
filter #java ×
전체 100
© SIRSOFT
현재 페이지 제일 처음으로