мигает при переходе с одной страницы на другую в jquerymobile и phonegap - PullRequest
1 голос
/ 16 ноября 2011

Я новичок в jquerymobile и делаю проект, в котором у меня есть 4 страницы, такие как A, B, C, D ... На всех страницах у меня есть две панели вкладок или панель навигации. Страница A статическая, На странице B я показываю список, обновляемый динамически с сервера. На странице C у меня есть несколько изображений, которые будут отображаться обновленными с сервера. На странице D мне нужно отобразить местоположение карты, для которого я использую Google maps.he проблема заключается в тестировании этого приложения в мой телефон Android 2.2 .. я получаю много мерцания и мигания при переходе с одной страницы на другую. Не удается добиться правильного выравнивания. я использовал решение, данное в стеке потока использования

-webkit-backface-visibility: скрыто;

но бесполезно. Пожалуйста, помогите мне. Буду признателен за любую помощь. Если кто-то захочет проверить мой код, я могу предоставить его.

спасибо

Ответы [ 2 ]

0 голосов
/ 23 февраля 2012

Ладно, девочки, я думаю, что у меня есть большой ответ на эту действительно плохую проблему!

На моем устройстве мигание происходит только в том случае, если страница, на которую я перехожу, имеет какую-то анимацию в обработчике страницы до или в программе просмотра страницы. Например, у меня есть страница со списком, которая иногда отображает специальное предупреждение. Всякий раз, когда отображается это предупреждение, переход страницы будет мигать при переходе на эту страницу. Когда он не отображается, мигание отсутствует.

И самое лучшее: разумный обходной путь!

Помогает отложить анимацию на несколько секунд. На моем Nexus S с Android 4.0.3 (который является более лёгким, чем паршивый с точки зрения переходов страниц jQueryMobile), 800 мс - это достаточная задержка, чтобы предотвратить мигание, а 400 мс - слишком мало. Даже при 800 мс, это не похоже на странную паузу в загрузке страницы с точки зрения пользователя.

Еще одна вещь, которая помогает, - это не фокусировать внимание на входах слишком рано. Это также, кажется, запутывает браузер в отношении того, какую страницу он анимирует, и, таким образом, заставляет его перемещаться между старой и новой страницами. Опять же, 800 мс - это достаточная задержка, чтобы успокоить движок анимации, и, скорее всего, она все равно появится мгновенно.

Похоже, что существует больше риска мерцания, если страница, на которую вы переходите, имеет как обработчик событий pagebeforeshow, так и обработчик pagehow. Если только один из них подключен, не мигает. Переход по-прежнему не всегда очень плавный, но, по крайней мере, нет уродливых воспоминаний о странице, которую, как вы думали, вы только что оставили.

0 голосов
/ 21 февраля 2012

У меня также была эта проблема при тестировании приложения на Android 2.2.Попробуйте протестировать ваше приложение на устройстве с более высокой версией Android, и вы должны заметить разницу.Это потому, что Android 2.2 был довольно медленным.Когда вышла версия 2.3, был огромный шаг в производительности.Если вы хотите, чтобы приложение выглядело хорошо для пожилых пользователей Android, попробуйте отключить анимацию или отключить тень.

...