limarquee.js的无限循环滚动是不是会引起内存泄露

JavaScript016

limarquee.js的无限循环滚动是不是会引起内存泄露,第1张

无限滚动意味着启动定时器,不管是用css3的animation还是js的timeout或者interval。

当时间间隔很短(操作执行时间>定时器周期)的时候,会造成队列程序执行来不及时,进程队列会在一段时间之后被占满,因此内存占用量就会变大。

避免队列占满就是将定时器的时间周期变得较长或者说使得..代码执行时间<定时器周期。

var camera

var isDown

window.onload = function () {

    //滚动条索取对象(这里使用整个页面,确保页面有滚动条)

    camera = document.body

    isDown = true //默认向下

    c = setInterval(gundong, 10)

}

var gundong = function () {

    if (isDown) {

        camera.scrollTop++ //下降

        //如果滚动条超过100的话,就往上

        //可以修改这个条件,作为折返的前提

        if (camera.scrollTop > 100) {

            isDown = false

        }

    } else {

        camera.scrollTop-- //上升

        //到达顶部的话,就下降

        if (camera.scrollTop == 0) {

            isDown = true

        }

    }

}