Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   onClick memory leak (https://javascript.ru/forum/misc/44175-onclick-memory-leak.html)

bdoxhobehue 09.01.2014 20:51

onClick memory leak
 
Всем привет!
Ситуация такая, есть код которой запускает показ времени после нажатия кнопки:
function startTime()
{
	var time=new Date();
	var h=time.getHours();
	var m=time.getMinutes();
	var s=time.getSeconds();
	var clock=document.getElementById('clock');
	clock.innerHTML=h+":"+m+":"+s;
	r=setInterval(function(){startTime()},500);
}

<div id="clock"></div>
<button onClick="startTime()">Time</button>

Броузер начинает жрать всю оперативную память, после нажатия на кнопку "Time".

Если убрать кнопку и вставить в body onLoad="startTime()" то все работает как надо, кто-нибудь может подсказать в чем проблема?

Яростный Меч 09.01.2014 21:01

function startTime() {
    var clock=document.getElementById('clock');
    r=setInterval(function(){
        var time=new Date();
        var h=time.getHours();
        var m=time.getMinutes();
        var s=time.getSeconds();
        clock.innerHTML=h+":"+m+":"+s;
    },500);
}

bdoxhobehue 09.01.2014 21:31

Понял свою ошибку надо было использовать setTimeout, setInterval работает немного по другому. Спасибо за еще одно решение.


Часовой пояс GMT +3, время: 14:45.