定时器的自调用可能造成的内存开销以及怎么终结?
有一个问题:showTime无限自调用会不会给内存造城压力,还有lefttime到0的时候怎么终结自调用呢??
有一个问题:showTime无限自调用会不会给内存造城压力,还有lefttime到0的时候怎么终结自调用呢??
2016-06-08
第一个问题,这个循环是每隔500毫秒触发一次的,只是定时任务而非死循环,是有本质区别的;如果是死循环是会造成内存泄漏的;而你说的内存压力问题,现代电脑也好、浏览器本身也好,性能都已经足够优越,这么简单的定时器任务不会给定时器造成任何压力的。
换个角度想想,现在越来越多的复杂任务放到前端解决、包括越来越丰富的渲染效果,这些任务都要比这么一个简单的周期性执行的简单代码占用资源多的多。
第二个问题,在showtime里使用setTimeout()再次调用自身前,先判断lefttime是否已经<=0了,如果已经<=0,设置文字变成“团购结束”并return,这样就不会再次调用showtime,调用链终止。
举报