Jas*_*rey 2 javascript setinterval
好的,我有一个餐厅网站。现在我在 javascript 中有一个简单的 if 语句,它根据一天中的时间将一段文本从 Were open 更改为 Were Closed。但是如果在手机上关闭浏览器,它在技术上仍然是在后台打开的。因此,如果您重新打开浏览器,它会在应该说已关闭的时间之后说已打开,直到您刷新页面。我想找到一种方法让它实时更新。我曾尝试使用 setInterval 和 setTimeout 来完成此操作以及 while 循环,但到目前为止,一无所获。我的意思是当我使用 setInterval 时,我可以打印时间并且它会实时增加。那么为什么它不能每秒运行我的 if 语句并打印所需的文本。
这是我的代码,目前只显示它。
var date = new Date().getHours();
if ((date > 9) && (date < 20) && (day != 0)) {
y="<span style=\"color:#07ed11\">We're Open!</span>";
}
else {
y="<span style=\"color:#fc4b1c\">Sorry we're Closed.</span>";
}
document.getElementById("open-close").innerHTML=y;
Run Code Online (Sandbox Code Playgroud)
我只是想让它实时打印我们的,这样我就可以看到它在时间合适时从打开变为关闭
jsFiddle示例
我冒昧地回去修改这个。我觉得这个版本会更好用
var checkOpenStatus = function () {
var d = new Date();
var date = d.getHours();
var day = d.getDay();
if ((date > 9) && (date < 20) && (day != 0)) {
y = "<span style=\"color:#07ed11\">We're Open!</span>";
} else {
y = "<span style=\"color:#fc4b1c\">Sorry we're Closed.</span>";
}
document.getElementById("open-close").innerHTML = y;
setTimeout(checkOpenStatus,15000);
};
checkOpenStatus();
Run Code Online (Sandbox Code Playgroud)
它每 15 秒运行一次,而不是每 100 毫秒运行一次。
尝试这个
var checkOpenStatus = function () {
var d = new Date();
var date = d.getHours();
var day = d.getDay();
if ((date > 9) && (date < 20) && (day != 0)) {
y = "<span style=\"color:#07ed11\">We're Open!</span>";
} else {
y = "<span style=\"color:#fc4b1c\">Sorry we're Closed.</span>";
}
document.getElementById("open-close").innerHTML = y;
}
setInterval(checkOpenStatus,100); //removed anon function
Run Code Online (Sandbox Code Playgroud)
It updates every 100 milliseconds on the setInterval. You can change it to be faster or slower according to your preference.
| 归档时间: |
|
| 查看次数: |
1858 次 |
| 最近记录: |