做某事的最佳方式是什么,比如在一天中的某个时间插入元素?我应该使用setTimeout()操作系统有更好的方法吗?
答案 0 :(得分:2)
首先,确定这是否是需要在客户端或服务器端发生的事情。你没有提供足够的信息来确定,但是因为你已经标记了这个Javascript我认为客户端是最好的方式。
按照这种假设,听起来用户将拥有一个开放的网页,并且在您想要操作或添加内容的某些时候。
以下是一个例子:
每分钟检查一次,并显示一个DIV( ID target
),只有在下午1:59之后和下午6:00之前(在用户时区):
setTimeout ( function(){
var hour = (new Date()).getHours();
if (hour>1 && <6) {
document.getElementById('target').style.display = "block";
} else {
document.getElementById('target').style.display = "none";
}
}, 60000 );
您当然可以将其更改为使用 createElement 插入新的DIV,并发出AJAX请求以获取内容等,但这取决于您。
答案 1 :(得分:1)
setInterval()对此更好。但是不要将间隔设置为24小时,或者其他什么。将其设置为每分钟左右检查一次,如果新的Date()大于您想要的时间,则运行元素插入功能。
答案 2 :(得分:0)
setTimeout()和setInterval()都执行与加载时间相关的定时js语句,而不是每天的特定时间,因此它们看起来不是一个干净的解决方案。你可以在那里抛出一些服务器端脚本。一些随机的解决方案从疲惫的大脑中拔出:
如果你想保持客户端的一切......显然不是很好......:)
修改强> 要在每天下午1点到2点之间执行php语句(未经测试):
$now = date('G',time());
$start = 13;
$end = 14;
if($now >= $start && $now <= $end){
//do something
}