js中使用setInterval浏览器卡死

在js中做一个时间效果,使用setInterval方法每秒调用一次显示时间的Function达到动态的效果,但是运行一会浏览器卡死,求解决方法!

function timer()
{
    var nowDate = new Date();
    //获取年
    var year = nowDate.getFullYear();
    //
    var month = nowDate.getMonth() + 1;
    if (month < 10) {month = "0" + month;};
    //
    var dd = nowDate.getDate();
    if (dd < 10) {dd = "0" + dd;};
    //
    var hh = nowDate.getHours();
    if (hh < 10) {hh = "0" + hh;};
    //
    var mm = nowDate.getMinutes();
    if (mm < 10) {m = "0" + mm;};
    //
    var ss = nowDate.getSeconds();
    if (ss < 10) {ss = "0" + ss;};
    //上午/下午
    var statu = hh > 12?"PM":"AM";

    document.getElementById("nowid").innerHTML = year + "年" + month + "月" + dd + "日&nbsp;&nbsp;&nbsp;" +  hh + ":" + mm + ":" + ss + " " + statu;
    setInterval("timer()",1000);
}
繁星点点滴滴
浏览 1653回答 5
5回答

神不在的星期二

楼上说的是用timeout递归调用。 大多数情况都不用interval的。

小唯快跑啊

以前碰过类似的情况是因为函数执行所花费的时间 大于等于这间隔的时间,所以导致了浏览器很容易被卡死

慕妹3242003

有什么解决办法没?

陪伴而非守候

timeout的话只能调用一次,我要秒数一直在走,所以选择使用setInterval
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript