Jak wielu ludzi zasugerował przy użyciu odroczony jest dobra opcja, tak długo jak nie obchodzi mnie, co zamówienie deviceready
i mobileinit
Ale w moim przypadku potrzebowałem kilku zdarzeń: pageshow
, gdy aplikacja została najpierw załadowana i mobileinit
i przez to wszystkie zdarzenia pageshow
/pagebeforeshow
/wszystkie były uruchamiane przed zakończeniem deviceready
, więc nie mogłem się do nich poprawnie połączyć za pomocą de napadł na nich. Ten wyścigowy stan nie był dobry.
To, co musiałem zrobić, to upewnić się, że "mobileinit" nie miało miejsca, dopóki "deviceready
" nie zostało już wyrzucone. Ponieważ mobileinit
uruchamia się natychmiast po załadowaniu JQM, wybrałem użycie jQuery.getScript
do załadowania go PO deviceready
został już zakończony.
<script src="cordova-2.2.0.js"></script>
<script src="js/jquery-1.8.2.min.js"></script>
<script src="js/async.min.js"></script>
<script src="js/app.js"></script>
<script>
document.addEventListener(
'deviceready',
function() {
$('body').css('visibility', 'hidden');
$(document).one("mobileinit", function() {
app.init();
$('body').css('visibility', '');
});
$.getScript('js/jquery.mobile-1.2.0.min.js');
},
false
);
</script>
Powodem Chowam ciała jest to, że efektem ubocznym tej metody jest pół sekundy widoczności oryginalnego dokumentu HTML przed jquery.mobile obciążeń. W tym przypadku ukrywanie go o dodatkowe pół sekundy pustej przestrzeni jest preferowane, aby zobaczyć dokument niezaszyfrowany.
, proszę! wybierz odpowiedź !!! – realtebo
mimo że na to zasługuje, nie mam zamiaru dawać +1, dopóki nie zostanie wybrana odpowiedź <3 – Donamite
Jaki problem rozwiązuje się tutaj - co jeśli po prostu podałem referencje do wymaganych plików js dla jQuery i Cordova w moim index.html, a następnie przekierować do strony logowania z trzeciego pliku js, używając jQuery $ .mobile.changePage? Chodzi mi o to, co powstrzymuje ten projekt od pracy i dlaczego potrzebuję rozwiązań opisanych poniżej? Czy to dlatego, że wewnątrz jQuery i/lub Cordova występują obciążenia asynchroniczne, a mój trzeci plik js może zostać załadowany, zanim jeszcze załadowane zostaną 2 frameworki? Proszę zasugeruj. Dzięki – Mustafa