我刚刚创建了两个版本的函数,可用于处理日期和时间并将其返回到不同的HTML元素。这些元素将显示为手机锁屏。该函数每秒调用一次,以确保它能够及时跳转到下一分钟。
我期望v.2更快,但根据我在这里做的测试:http://jsperf.com/timecalccompare它慢了大约90%! 它真的慢了还是测试不可靠?
答案 0 :(得分:1)
我会采用更简单的方法,但在更新视图和进行其余计算之前,还要检查分钟是否实际发生了变化:
此外,绝对没有理由在每次迭代时声明月份和日期数组,所以:
var months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
var days = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
var lastMinute = null;
function Update()
{
var now, minutes, hours, day, date, month, daypart = "AM";
now = new Date();
minutes = now.getMinutes();
if(minutes == lastMinute) return;
hours = now.getHours();
day = days[now.getDay()];
date = now.getDate();
month = months[now.getMonth()].substring(0, 3);
if(minutes < 10) minutes = "0" + minutes;
if(hours > 12) {
hours -= 12;
daypart = "PM";
}
if(hours == 0) hours = 12;
$("#clock").text(hours + ":" + minutes + " " + daypart);
$("#day").text(day);
$("#date").text(date + " " + month);
lastMinute = minutes;
}
答案 1 :(得分:0)
你的第二个版本刚刚破解,并没有做任何远程接近它应该做的事情。如果递增秒数不会使它们为零,则需要停止处理,而不是继续进行更多测试。
答案 2 :(得分:0)
建议:尽量减少DOM访问次数
您的分步脚本无效!