저는 90 초 후에 차고 문 닫기 이벤트를 시작하는 나무 딸기 파이가 있습니다. 나는 카운트 다운 타이머를 웹 페이지에서 동적으로 업데이트하는 것을 성공적으로 보여 주었지만 몇 가지 이유 때문에 카운트 다운이 불규칙하고 끊임없이 더 낮거나 높은 숫자로 깜박 거립니다.자바 스크립트 카운트 다운 타이머가 비정상입니다
분명히 나는 뭔가를 상쾌하게해야하지만 말할 필요도없이 포럼에서 많은 시간을 보냈지 만 아무 소용이 없다. 나는 누군가가 내 코드를보고 어떤 방향을 제시하기를 바라고있다.
<?php
$pinInput = trim(shell_exec("gpio read 26"));
$pinOutput = trim(shell_exec("gpio read 2"));
if ($pinInput!=$pinOutput){
echo "Timing for auto reclose...";
?>
<br>
<b><span id="countdown">90</span> Seconds</b>
<script type="text/javascript">
var timer = 90,
el = document.getElementById('countdown');
(function t_minus() {
'use strict';
el.innerHTML = timer--;
if (timer >= 0) {
setTimeout(function() {
t_minus();
}, 1000);
} else {
// do stuff, countdown has finished.
}
}());
</script>
<?php
}
elseif ($pinInput=1)
{
echo "Monitoring input...";
}
else
{
echo "Garage door is closing...";
}
?>
또한 위의 코드 조각라는 파일 timing.php 내에 있음을 언급한다. 이것은 다음과 같이 index.php를 호출한다 : 그래서 요약, 제가하고 싶은 것은 "자동 은둔자에 대한 타이밍 ..."입니다
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.0/jquery.min.js"></script>
<script type="text/javascript">
var auto_refresh = setInterval(
function()
{
$('#Input').load('timing.php');
}, 1000); // refresh every 1000 milliseconds
</script>
는 정적으로 유지하기 위해 동적으로 (! $ pinInput = $ pinOutput)하지만 경우 90 년대부터의 카운트 다운을 보여줬다.
1) 다른 곳에서는't_minus'를 호출하고 있습니까? 몇 가지 다른 비동기 함수가 실행중인 것 같습니다. 2)'$ pinInput = 1'을'$ pinInput == 1'로 변경하고 싶을 것입니다. '=='은 비교를 위해,'='는 할당을 뜻합니다. –
매 초마다 한 번씩 'timing.php'페이지를 다시로드하고 해당 코드 안의 * 타임 아웃 프로세스를 다시 시작합니다. 기본적으로 많은 타이머를 시작합니다. – Pointy