2012-03-26 3 views
0

У меня есть Javascript, который прокручивает страницу, когда пользователь перетягивает элемент возле края окна. Там есть функция что-то вроде этого (упрощенно):Эвристика для относительной производительности браузера в приложении

var scroll = function() { 
    var scrollTop = $myElement.scrollTop(); 
    $myElement.scrollTop(scrollTop += delta); 
    setTimeout(scroll, 25); 
} 

Я бегу в проблемы производительности на старых браузерах, и я могу несколько смягчить их, уменьшая разрешение моей scroll() функции из 25 (как показано выше) 100 или около того.

Как проверить, работает ли браузер медленнее и уменьшает разрешение?

Я бы предпочел избежать нюхания агента пользователя.

+0

Положите его на 50-70 по умолчанию и не пытайтесь сделать что-то, что вы не можете – dynamic

ответ

0

a человеческий does not notice "slowness" up until 200-300ms, поднять ваш таймер. никто не увидит это отставание в разумных пределах.

также, нажатие таймера на так быстро является причиной проблемы. старый Broswer JS не так быстро. попробуйте открыть диспетчер задач и увидеть всплеск на вашем CPU, когда вы перетаскиваете его из-за этого очень быстрого таймера.

+0

, когда я устанавливаю таймаут до 25 или 15, изменение заметно более плавное. попробуйте это для себя на столе с 300-500 рядами. я понимаю, что вычислительно-интенсивные задачи подталкивают CPU :) Мне просто интересно, есть ли хороший способ понять это в коде, чтобы я мог соответствующим образом настроить. – aaronstacy

+0

* «Как проверить, работает ли браузер медленнее и уменьшает разрешение?» * - почему бы не «заставить работать все браузеры» *? – Joseph

+0

вам кажется, что вы бы сделали хорошего инженера по качеству. это нормально, он работает во всех браузерах :) Я бы хотел постепенно улучшать работу пользователей в более современных браузерах. – aaronstacy

Смежные вопросы