jScrollPane вызывает медленное предупреждение сценария - PullRequest
2 голосов
/ 15 ноября 2011

Я столкнулся с медленным предупреждением сценария в IE 9 при использовании jscrollpane на странице, содержащей прокручиваемое (т.е. несколько jscrollpanes внутри) наложение с кучей содержимого.В Firefox 8 все работает отлично, и страница быстро создается.В IE это занимает много времени (около минуты), а свертывание / расширение одной из прокручиваемых областей (то есть отображение / скрытие) заставляет страницу снова зависать на долгое время.Очевидно, что это проблема только в сочетании с IE.

Та же страница, но без добавления .jscrollpane (), находится в IE так же быстро, как и в Firefox.

Я использую jscrollpane2.0.0.beta10 и jquery 1.7, но это происходит с jquery 2.0.0.beta9 и jquery 1.6.

1 Ответ

2 голосов
/ 23 октября 2012

Публикация ответа user1047487 из комментария, чтобы его было легче найти (также добавив немного форматирования).

В jquery.jscrollpane.js функция initialiseVerticalScroll() использует очень несоответствующий выбор (по крайней мере для IE), чтобы изменить размер вертикальной полосы прокрутки:

container.find('>.jspVerticalBar>.jspCap:visible,>.jspVerticalBar>.jspArrow').ea‌​ch

Это особенно медленно, когда контейнер содержит много элементов.

Исправить очень просто, потому что .jspVerticalBar уже известен как verticalBar:

verticalBar.find('>.jspCap:visible,>.jspArrow').each

Та же проблема / решение должно применяться к соответствующей горизонтальной полосе.

...