특정한 시간에 화면 새로고침 (코드가 지연되서 실행됩니다)
본문
<script>
function getTodayTime(){
var today = new Date();
var h=today.getHours();
var m=today.getMinutes();
if(h===3){
if(m===48){
window.location.reload();
}
setTimeout("getTodayTime()", 1*60*1000);
}else{
setTimeout("getTodayTime()", 40*60*1000);
}
}
getTodayTime();
</script>
<script>
var timer = setInterval(function()(<?=$getTodayTime();?>);
}, 1)
</script>
여차 저차 해서 일정한 시간대에 자동으로 새로 고침을 하는 스크립트를 구현(구글링)했습니다.
문제는
1. 저는 00:00:00 초단위로 구현을 해야 하는데 분단위로 구현이 된다는 점.
=분단위 새로고침이 아닌 초 단위로의 새로고침을 구현하고 싶습니다.
2. 분단위 구현도 일정한 시간에 구현되는게 아니고 지정된 분 ( if(m===48){ <<요 값 이
지난지 30~40초 이후에나 새로고침이 실행이 된다는 점입니다.
=지연 없이 즉시 실행되게 하고 싶습니다.
초 단위로 구현을 하고 즉시 실행을 하려면 어떤 방법을 써야 할지 setInterval 같은 함수를 쓰면 될 것같은데 사용법을 몰라서 적용을 못 시키는 것 같기도 합니다. 그리고 getSeconds 를
var s=today.getSeconds(); 이렇게 지정하더라도 setTimeout("getTodayTime()", 40*60*1000); 이 부분을 초단위로 정상적으로 설정하려면 어찌 해야 할지 몰라서 초단위로 지정도 못하고 있습니다.
고수 분들의 답변 기다립니다. 부탁드립니다. 항상 고맙습니다 ..
!-->!-->답변 2
님이 원하는 코드가 아닌데요 ㅠ.ㅠ
그리고 1초에 한번씩 페이지 새로 고침하는건
저거 다 필요 없이 아래 html 코드를 <head> </head> 에 넣어두면 됩니다.
<meta http-equiv="refresh" content="1">
하지만 1초에 한번씩 리프레시 하는건 보통 권장하는 방법은 아니니까요
!-->예약시스템을 예로 들어 새벽4시와 오후4시30분에 자동새로고침됩니다.
<script>
function refreshAt(hours, minutes, seconds) {
var now = new Date();
var then = new Date();
if(now.getHours() > hours ||
(now.getHours() == hours && now.getMinutes() > minutes) ||
now.getHours() == hours && now.getMinutes() == minutes && now.getSeconds() >= seconds) {
then.setDate(now.getDate() + 1);
}
then.setHours(hours);
then.setMinutes(minutes);
then.setSeconds(seconds);
var timeout = (then.getTime() - now.getTime());
setTimeout(function() { window.location.reload(true); }, timeout);
}
refreshAt(04,00,0);
refreshAt(16,30,0);
</script>