Pek çok kişinin, ertelenmiş bir kullanımın önerdiği gibi, hangi sıra deviceready
ve ne olduğunu umursamadığınız sürece uygun bir seçenektir mobileinit
. Ancak benim durumumda, pageshow
uygulama ilk yüklendiğinde ve dolayısıyla mobileinit
bu pageshow
/ pagebeforeshow
/ etc olayları Tamamlanmadan önce tüm ateşler deviceready
, bu yüzden ertelenmiş bir kullanarak onları düzgün bir şekilde bağlayamadım. Bu yarış durumu iyi bir şey değildi.
Yapmam gereken şey, 'mobileinit'in' 'çoktan çalıştırılana kadar gerçekleşmediğinden emin olmaktı deviceready
. Çünkü mobileinit
JQM'yi yüklediğinizde hemen patlıyor , Zaten bittikten jQuery.getScript
SONRA yüklemek için kullanmayı seçtim deviceready
.
<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>
Gövdeyi gizlememin nedeni, bu yöntemin bir yan etkisinin, jquery.mobile yüklenmeden önce orijinal HTML belgesinin yarım saniyelik görünürlüğü olmasıdır. Bu durumda, stilsiz belgeyi görmek yerine fazladan yarım saniye boş alan gizlemesi tercih edilir.