Я разрабатываю мобильное приложение Phonegap, используя jQuery Mobile, Backbone и RequireJS. Я настроил jQM, чтобы позволить Backbone управлять маршрутизацией.
Всякий раз, когда я меняю ориентацию устройства, кажется, что весь макет отображается снова (примерно в первую секунду я вижу только обычный текст без визуальных улучшений jQM и пейджинга, и это происходит, когда приложение начинает выполняться как ну) и он переходит на первую страницу, хотя отображалась другая. Кто-нибудь сталкивался с такой же проблемой?
РЕДАКТИРОВАТЬ:
Макет не улучшался с помощью jQM, потому что он загружался асинхронно с помощью RequireJS до того, как было загружено тело, но почему это происходит при изменении ориентации? jQM уже загружен в DOM, я неправильно понимаю рабочий процесс RequireJS? Есть ли способ загрузить некоторые библиотеки с помощью RequireJS до загрузки тела? Если нет, я в конечном итоге буду загружать jQuery, jQM и файл конфигурации jQM синхронно.
А что касается маршрутизации, я еще ничего не выяснил, предположим, что это как-то связано с тем, что маршрутизатор Backbone не может правильно обрабатывать хэш URL.
РЕДАКТИРОВАТЬ 2:
Каким-то образом всякий раз, когда я поворачиваю устройство, хэш URL-адреса становится пустым. Таким образом, приложение переходит на первую страницу. Найдите ниже содержимое конфигурационного файла jQM:
define(['jquery'], function ($) {
$(document).on("mobileinit", function () {
$.mobile.ajaxEnabled = false;
$.mobile.linkBindingEnabled = false;
$.mobile.hashListeningEnabled = false;
$.mobile.pushStateEnabled = false;
$.mobile.defaultDialogTransition = "none";
$.mobile.defaultPageTransition = "slidedown";
});
});