Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Suggest a way to update time every minute

I have a full ajax application. i am using the below code to update time every minute. But if i keep the browser open for >10 min the browser becomes non responsive/slow. Suggest a better code.

function tick()
{
    var d = new Date();
    var time = padNumber(d.getHours(),2)+':'+padNumber(d.getMinutes(),2);
    $('#WeatherBoLfTime').html(' '+time);
    t = setInterval('tick()',60000);
}

$(document).ready(function(){
    tick();
})
like image 872
aWebDeveloper Avatar asked Oct 19 '25 14:10

aWebDeveloper


1 Answers

The problem is that you're calling setInterval many times and never clearing any of them. So after a while you have lots of interval callbacks running at around the same time.

Change

t = setInterval('tick()',60000);

to

t = setTimeout(tick,60000);

When I first started out coding JavaScript I took down a Lycos web server with AJAX calls because I made the same mistake :-)

Note that since you're displaying the actual time, you should use a much shorter timer than 1 minute. If I land on your webpage at 13:42:30, the time will not be updated until ~13:43:30. To keep it in sync with the machine's time, you would probably want to set the timer for 1000.

like image 53
Andy E Avatar answered Oct 22 '25 02:10

Andy E



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!