到目前为止,我已经为计时器编写了一个脚本来倒计时到特定的一天。问题在于,刷新浏览器的那一刻,它需要1秒钟才能显示出来,而不是立即显示。
我确实想出了一种使它立即显示的方法,但是我不得不通过将其直接放在countDownDate, now, timeDifference, oneDay, days, hours, minutes, seconds
的顶部来重复使用document.getElementById("timer").innerHTML = ...;
和timer()
的代码块效率低下。
在下面的尝试中,当浏览器刷新时,倒计时会出现大约一秒钟,但我希望它能够立即显示。我的目标是创建可重用的代码。
我在做什么错,我该如何解决?
这是html:
<h1 id="timer"></h1>
这是js:
function conversion() {
var countDownDate = new Date("June 1, 2019 24:00:00");
var now = new Date().getTime();
var timeDifference = countDownDate - now;
var oneDay = 1000 * 60 * 60 * 24;
var days = Math.floor(timeDifference / (oneDay));
var hours = Math.floor((timeDifference % (oneDay)) / (1000 * 60 * 60));
var minutes = Math.floor((timeDifference % (1000 * 60 * 60)) / (1000 * 60));
var seconds = Math.floor((timeDifference % (1000 * 60)) / 1000);
document.getElementById("timer").innerHTML = days + "d " + hours + "h " + minutes + "m " + seconds + "s ";
}
function timerCountdown() {
var timer = setInterval(function() {
conversion();
if(timeDifference < 0) {
clearInterval(timer);
document.getElementById("timer").innerHTML = "Timer's over.";
}
}, 1000);
}
timerCountdown();
答案 0 :(得分:1)
将setInterval
回调函数放入变量中,并都使用该函数调用setInterval
,并在页面加载时立即调用:
function timerCountdown() {
var timer = setInterval(intervalCb, 1000);
function intervalCb() {
conversion();
if(timeDifference < 0) {
clearInterval(timer);
document.getElementById("timer").innerHTML = "Timer's over.";
}
}
intervalCb();
}
timerCountdown();
答案 1 :(得分:0)
立即拨打float xIn = -0.0004F;
float xOut = 0;
MemoryMappedFile memoryMappedFile = CreateMMF();
using (MemoryMappedViewAccessor accessor = memoryMappedFile.CreateViewAccessor(0, 8))
{
accessor.Write(0, xIn);
}
using (MemoryMappedViewAccessor accessor = memoryMappedFile.CreateViewAccessor(0, 8))
{
accessor.Read(0, out xOut);
}
。