Ich bin derzeit eine App vor allem für Selbsterziehung Zwecke der Entwicklung und da ich noch nicht vollständig verwendet, um js bin könnte ich Hilfe für mein Problem verwenden:Warten auf mehrere Events
In meiner app ich bin mit einer Javascript-Bibliothek (jqMobi), die für DOM-Manipulation, Seitenübergänge, Ajax-Aufrufe usw. verwendet wird, und ich nutze auch Phonegap, um auf Gerätefunktionen wie die Geolocation zuzugreifen.
Wenn ich meine App starte, möchte ich die Geolokalisierung des Geräts erhalten, eine AJAX (JSONP) -Anforderung an meinen Server (einschließlich der Geolokalisierung des Geräts), die ein Array von JSON-Objekten zurückgibt, die ich verwenden werde Erstelle eine Liste.
Bevor ich die Geolocation bekommen kann, muss ich warten, bis phonegap geladen wird. Und bevor ich jqMobi verwende, um den Ajax anzurufen und die Antwort zu verarbeiten, muss ich darauf warten, dass sie auch geladen wird.
So habe ich im Grunde zu Veranstaltungen im Hören auf
document.addEventListener("DOMContentLoaded",execute_this,false); //jqMobi is now ready
document.addEventListener("deviceready", execure_sth, false); //Phonegap is now ready
Wie führe ich eine Funktion, sobald diese beiden Ereignisse ausgelöst haben und bevor nicht?
Wenn ich jQuery verwenden würde, würde ich seine $ .Deferred-Objekte und seine Wann ... Dann-Funktion verwenden, aber da ich keinen Zugriff auf diese habe, suche ich nach einer Alternative.
Vielen Dank im Voraus für Ihre Hilfe!
Danke für Ihre Hilfe. Eine Frage allerdings: Was passiert, wenn beispielsweise das Device-Event vor DOMContentLoaded auftritt? Würde es noch execute_sth aufrufen? – marius2k12
Siehe auf der phonegap-Website http://docs.phonegap.com/en/1.0.0/phonegap_events_events.md.html "Normalerweise möchten Sie einen Ereignis-Listener mit document.addEventListener hinzufügen, sobald das DOM des HTML-Dokuments hat geladen. " – ppsreejith