LINUX.ORG.RU

setInterval(4) грузит процессор

 ,


0

1

Всем привет, необходимо плавный скроллинг через jQuery, и именно значения scrollTop нужно изменять, без css transition, потому-что такой плагин странный (Slim scroll). делаю через setInterval, но он грузит как-то сильно процессор, либо постоянный вызовы scrollTop грузят, но в целом все работает:

function interpTo (current, target, deltaTime, interpSpeed) {

    if (interpSpeed == 0)
        return target;

    var dist = target-current;

    if (dist*dist < 0.001)
        return target;

    var deltaMove = dist*deltaTime*interpSpeed;
    return current+deltaMove;
}

function scroll(b, t) {
    _targer = t;

    if (init)
        return;

    init = true;

    var td  = setInterval(function() {
        var current = b.scrollTop();

        scrollVal = interpTo(scrollVal, _targer, 0.01, 4)
        b.scrollTop(scrollVal);

    }, 4);

}

★★★

Последнее исправление: Int64 (всего исправлений: 1)

Поправка, процессор грузится только на хромиуме, на firefox все норм.

Int64 ★★★
() автор топика
Последнее исправление: Int64 (всего исправлений: 1)

Каждые 4 ms? Оптимист!

Deleted
()

Ну ты каждые 4мс апдейтишь scrollTop, а потом чему-то удивляешься. Если хочешь чтобы было быстро, с такими интервалами можно только читать, и желательно не очень много.

Vit ★★★★★
()

зачем писать плавный скролл, когда это настраивается пользователем на системном уровне

Опрос меньше значений 600-200 заметно нагружает систему.

Чтобы избежать опросов, пишите event-driven приложение...

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.