<script>
window.onload=function(){
function nowTime(){
var s=0,m;
(function(){
s++;
m=Math.floor(s/60);
document.getElementById('t').innerHTML=(Math.floor(m/60))+':'+(m%60)+':'+(s%60);
setTimeout(arguments.callee,1000);
})();}
nowTime();}
</script>
<div id="t"></div>
这是为了计时,即计算经过了多少秒。
显示格式为 HH:MM:SS。
有人可以缩短它或加速它(我的意思是更好的性能)吗?
此代码每 15 分钟有 100 毫秒的延迟。以下答案也有类似的时间延迟。这个时间并不重要。如果您愿意,校准时间非常容易。
最佳答案
window.onload = function() {
var s = 0, m, el = document.getElementById('t');
(function next() {
el.innerHTML = ~~((m = ~~(++s / 60)) / 60) + ':' + (m % 60) + ':' + (s % 60);
setTimeout(next, 1000);
})();
}
- 请勿使用
arguments.callee
,已弃用。 - 缓存 DOM 元素。
- Math.floor 可以替换为
~~
. - 给变量赋值是一个表达式,它返回RHS的值,所以可以把
m = ~~(++s / 60)
第一次使用m
.
然后你可以丑化它(154 个字符):
window.onload=function(){var n,t=0,e=document.getElementById("t")
!function o(){e.innerHTML=~~((n=~~(++t/60))/60)+":"+n%60+":"+t%60,setTimeout(o,1e3)}()}
关于javascript - (缩短这个)Javascript 计时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16809225/