jQuery Mobile: я должен использовать pageBeforeShow или pageBeforeChange для последних настроек? - PullRequest
0 голосов
/ 20 марта 2012

Я занимаюсь разработкой мобильного приложения в jQueryMobile и PhoneGap.Зачастую из-за характера jQM или из-за загрузки данных страница должна быть скорректирована в последнюю минуту, прежде чем она будет показана.Например, поля формы должны заполняться динамически извлекаемыми данными, или содержимое элементов списка должно иметь немного другой стиль, чтобы соответствовать лучше.

В настоящее время я делаю все эти корректировки, используяОбработчик события pageBeforeShow.Но мне интересно, не должен ли я использовать обработчик события pageBeforeChange.Документы jQM на самом деле не проясняют, как эти два события связаны друг с другом, то есть, который запускается первым.

Что я знаю Я знаю следующее

  • pageBeforeShow и pageShow срабатывают после того, как вся разметка jQM (например, заставляет элементы списка выглядеть красиво).
  • pageBeforeShow и pageShow привязаны к определенной странице, тогда как pageChange вызывается всякий раз, когда происходит изменение страницы (поэтому, если вы хотите внести определенные изменения в одну страницу до того, как пользователь попадет туда, вам нужно проверитьсвойство event.toPage)

Почему я спрашиваю И вот почему я хочу знать, является ли страница (До) Изменение лучшим кандидатом.

jQuery Мобильные переходы на страницы неудобны на многих устройствах.Большая проблема на устройствах Android заключается в том, что изменения страниц происходят скачкообразно: независимо от типа перехода (исчезновение, всплывающее окно и т. Д.), Страница, оставленная пользователем, будет отображаться на короткое время после того, как новая страница будет более или менее завершена вбраузер.По моему опыту, это происходит в основном, когда другие анимации запущены или запускаются во время перехода страницы.По сути, браузер Android, похоже, не хочет применять переходы к элементам, которые на самом деле не видны, и в результате он будет переключаться между страницами jQM.Я уже разработал обходной путь, где я задерживаю любую разметку и настройки формы для страницы примерно на 1000 мс, что предотвращает мигание, но означает, что пользователь может видеть, что эти корректировки происходят на экране после того, как страница открывается.

Этот анализ заставляет меня думать, что pageBeforeChange может быть лучшим кандидатом для добавления разметки и корректировок формы.Но это будет большая переписка кода, и я не знаю, в какие непредвиденные вещи я попаду.У кого-нибудь есть опыт участия в этих мероприятиях?

1 Ответ

0 голосов
/ 20 марта 2012

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

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

Надеюсь, это поможет.

...