Niedawno słyszałem o kompilowaniu kodu C++ do javascript przy użyciu emscripten i jak, jeśli zrobione są optymalizacje asmjs, ma to potencjał, aby uruchamiać aplikacje naprawdę szybko.Cała aplikacja internetowa w C++ z interakcją DOM
Przeczytałem kilka postów, samouczek, a nawet usłyszałem bardzo interesujące youtube videos. Z powodzeniem przeprowadziłem też przykład Witaj świecie.
Jednak nie znam wszystkich możliwości tego podejścia, zwłaszcza, jeśli cała aplikacja internetowa może być/powinna być napisana w C++ jako całość, bez kodu kleju.
Bardziej konkretnie chciałbym napisać coś podobnego do następującego C++ (jako odnośnik nie działający kod).
#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);
}
Mam nadzieję, że to wyjaśnia ideę, ale głównym celem jest osiągnięcie coś podobnego do:
funkcją statycznego, który inicjuje Moduł uruchamiania, gdy okno jest gotowy (to samo zachowanie, które daje jquery.ready()). Tak więc słuchacze mogą być dodawani do elementów DOM.
Sposób interakcji z DOM bezpośrednio z C/C++, stąd
#include <window>
, w zasadzie dostęp do DOM i innych elementów, takich jak JSON, Navigator i inne.
Wciąż myślę o Lua i jak gdy skrypt lua zawiera wspólny obiekt (dynamiczny połączony Library) to szukał funkcji initialize w tym pliku .so, i tam można by zarejestrować funkcje dostępne z zewnątrz moduł, dokładnie w jaki sposób działa powrót modułu funkcyjnego utworzonego w asmbie. Ale nie mogę wymyślić, jak emulować jquery.ready bezpośrednio w C++.
Jak widać, mam małą wiedzę na temat asmjs, ale nie znalazłem tutoriali lub podobnych do tego, czego szukam, przeczytałem odniesienia do standardowych bibliotek zawartych w czasie kompilacji dla stdlibc, stdlibC++ i SDL, ale brak odniesienia do sposobu manipulowania DOM ze źródła C++.
Duetto jest przeznaczony do tego użytku: http://leaningtech.com/duetto/examples/ –
@ Industrial-antidepressant, jeśli zamieścisz swój komentarz jako odpowiedź, zaakceptuję go. –
@ Przemysłowy lek przeciwdepresyjny Jest zastrzeżony. –