Ich habe kürzlich von der Kompilierung von C++ - Code zu Javascript mit emscripten gehört und wie, wenn asmjs Optimierungen durchgeführt werden, hat es das Potenzial, Anwendungen wirklich schnell zu laufen.Ganze Web-App in C++ mit DOM-Interaktion
Ich habe mehrere Post gelesen, Tutorial und hörte sogar einige sehr interessante youtube videos. Ich habe auch das Beispiel Hallo Welt erfolgreich ausgeführt.
Allerdings kenne ich nicht die vollen Möglichkeiten dieses Ansatzes, speziell wenn eine ganze neue Webapp in C++ als Ganzes geschrieben werden kann/sollte, ohne Leimcode.
Konkreter würde ich gerne etwas ähnlich dem folgenden C++ schreiben (als Referenz funktioniert nicht Code).
#include <window>
class ApplicationLogic : public DOMListener{
private:
int num;
public:
ApplicationLogic():num(0);
virtual void onClickEvent(DOMEventData event){
num++;
}
virtual ~ApplicationLogic(){}
}
int main(){
DOMElement but = Window.getElementById("foo");
ApplicationLogic app();
but.setOnclick(app);
}
Ich hoffe, dass es klar, die Idee macht, aber das Ziel ist etwas ähnliches zu erreichen:
eine statische Funktion, die den Modul Lauf initialisiert, wenn das Fenster bereit ist (die gleiche Verhalten, das gibt jquery.ready()). So können Listener zu DOM-Elementen hinzugefügt werden.
Ein Weg zur Interaktion mit dem DOM direkt aus C/C++, daher die
#include <window>
, im Grunde Zugriff auf das DOM und andere Elemente wie JSON, Navigator und so.
Ich denke an Lua halten und wie, wenn der lua-Skript enthält ein gemeinsam genutztes Objekt (dynamisch verknüpfte Bibliothek) es für eine Initialisierungsfunktion in dieser .so Datei gesucht, und es würde man die Funktionen von außerhalb der verfügbare registrieren Modul, genau wie die Rückgabe des in asmjs angelegten Funktionsbausteins wirkt. Aber ich kann nicht herausfinden, wie man jquery.ready direkt mit C++ emuliert.
Wie Sie sehen, habe ich wenig Wissen über asmjs, aber ich habe keine Tutorials oder ähnliches gefunden, wonach ich gesucht habe. Ich habe Verweise auf Standardbibliotheken gelesen, die zur Kompilierzeit für stdlibc, stdlibC++ und SDL enthalten sind. aber keine Referenz, wie man das DOM von der C++ Quelle manipuliert.
Duetto ist für diese Verwendung konzipiert: http://leaningtech.com/duetto/examples/ –
@ Industrial-Antidepressivum Wenn Sie Ihren Kommentar als Antwort posten, werde ich es akzeptieren. –
@ Industrial-Antidepressivum Es ist proprietär. –