Mac OS X WebKit и положение CSS: исправлена ​​прокрутка

Мы столкнулись с проблемой оптимизации с использованием WebKit в Mac OS X, с которой мы надеемся, что кто-то может нам помочь.

Мы написали приложение Cocoa для Mac OS X, которое, по сути, управляет одним WebView, который указывает на наш онлайн-сайт. В основном все работает нормально. Однако наш веб-сайт использует CSS position: fixed, чтобы тонкая «панель заголовка» оставалась привязанной к верхней части WebView, подобно большой оранжевой панели «Добро пожаловать» в верхней части StackOverflow.com. Мы определили, что с активным position: fixed, прокрутка WebView заставляет всю веб-страницу заново отрисовываться, что приводит к мучительно медленной прокрутке. Если позиция: фиксированная отключена, прокрутка выполняется очень быстро и плавно; нужно рисовать только те элементы страницы, которые прокручиваются «в поле зрения».

Мы знаем, что это не ошибка в нашем коде приложения Какао и не проблема в нашем коде HTML / CSS. Такая же медленная прокрутка происходит при использовании тестового кода WebKit от Apple. Мы можем указать тестовый код Apple на http://www.StackOverflow.com в качестве теста и увидеть точно такое же поведение. Также есть тестовая страница в базе данных ошибок Mozilla, которую мы использовали для проверки проблемы (https://bug201307.bugzilla.mozilla.org/attachment.cgi?id=139911).Странно то, что некоторые браузеры на базе WebKit на Mac (например, Safari и Chrome) не имеют этой проблемы; прокрутка всегда выполняется быстро на страницах с использованием CSS position: fixed в этих двух браузерах.

Кто-нибудь еще сталкивался с этой проблемой с WebKit на OS X? Если да, что мы можем сделать, чтобы ускорить прокрутку? Спасибо.

7
задан philbert1 1 November 2011 в 21:17
поделиться