Chrome / V8 замедляет onmousemove () над некоторыми элементами

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

в каждом
  • , для информации об исполнителе, альбоме и названии).

    Вы можете получить доступ к временной общедоступной версии здесь: http://music.sixteennet.co.uk/?anonymous

    (Все песни являются недействительными ссылками на общедоступную версию, так что ничего не играйте: P)

    Во-первых, краткое описание того, что именно это за штука:

    Слева находится боковая панель, отображающая список подходящих песен. Пользователь выбирает песни в основном списке (щелчок, Shift-щелчок, Ctrl-щелчок, вы знаете, что делать) после поиска / щелчка по исполнителям и добавляет их в список воспроизведения слева, нажав или перетащив и отпустив . У меня все это работает (этот вопрос не о том, как создать пользовательский интерфейс Javascript).

    Проблема : $ (window) .mousemove (), .mouseup () и .mousedown () содержат функции для отображения окна с высотой в пикселях (16 * количество выбранных песен в основном list) [каждый

  • имеет высоту 16 пикселей]. Когда мышь перемещается, это поле перемещается вместе с ней, пока, когда указатель мыши не окажется над списком воспроизведения, список воспроизведения не изменит цвет, и если пользователь решит выполнить mouseup () (отменить щелчок), выбранные песни будут добавлены в список воспроизведения.

    Единственное, что когда мышь движется с выделенным окном песен, видимым в данный момент, в Google Chrome движение окна невероятно медленное, но только когда мышь находится над основным списком песен (однако, Использование ЦП остается на уровне 100% на протяжении всего времени отображения окна). В Firefox 6 и IE 9 движение происходит плавно, а загрузка ЦП не на 100% (даже на Athlon 64 3500+). Этот тест был повторен (мной) на двух ПК, один под управлением Windows 7, а другой под управлением Ubuntu Linux.

    Я очень подозреваю, что это ошибка Google Chrome, но если у кого-то есть добрая воля просмотреть исходный код и сказать мне, в чем проблема (если она есть) ... вы для меня Бог: )

    РЕДАКТИРОВАТЬ: причина, по которой я сказал Chrome / V8, заключается в том, что Safari, использующий тот же механизм рендеринга (WebKit), не имеет этой проблемы (хотя это не так гладко, как Firefox / IE9 / Opera)

  • 5
    задан Fela Maslen 24 October 2011 в 23:55
    поделиться