2013-09-27 17 views
5

In meiner Anwendung erzeuge ich große Dart-Klassen. Momentan kompiliere ich sie auf dem Server, was CPU-Zeit kostet. Es wäre viel besser, den Dart-Code im Browser zu kompilieren. Der Code wird dann über spawnURI geladen.Kompilieren Dart im Browser

Ist es möglich, den dart2js Compiler innerhalb von Dart Code in einer unterstützten Weise aufzurufen, wie es in try.dartlang.org getan wird, oder muss ich den Compiler in mein Projekt kopieren?

+1

Es ist ... nicht sehr klar, was Sie versuchen zu tun. Sie kompilieren Dart zu JS nur einmal, oder? Außerdem macht try.dartlang.org die Kompilierung auf dem Server. Der dart2js-Compiler ist nicht in JavaScript geschrieben, Sie können ihn nicht im Browser ausführen. – JJJ

+0

Wir würden gerne mehr über Ihren Anwendungsfall erfahren. Kümmere dich um Fragen bei [email protected]? –

+0

Juhana, aber dart2js ist in Dart geschrieben, die Sie mit dart2js zu Javascript kompilieren können. Klingt rekursiv, aber so ist es;) –

Antwort

4

Das Kompilieren von Dart zu JavaScript wird auf dem Server schneller sein, da Sie dart2js über Dart VM ausführen können. try.dartlang.org läuft in einer speziellen Version von dart2js, die nicht in den Hauptquellcode eingebunden wurde.

+0

Das ist, was ich erwartet :( –

+0

Können Sie uns mehr darüber erzählen, warum Sie auf dem Client kompilieren möchten? Es wird langsamer sein. Danke für den Hintergrund. –

+1

Weil jeder Aufruf von dart2js verbraucht mindestens 3.5s auf dem Server, da ich keine Serverfarm habe, aber wirklich nur ein winziger virtueller Server, der mehrere Clients behandelt, würde es völlig blockieren.Wenn zum Beispiel 10 Clients entscheiden, drücken sie dart2js Etwa zur gleichen Zeit muss der Compiler auf 35 Sekunden warten, und selbst wenn die Kompilierung auf der Client-Seite mehr als 3,5 Sekunden dauern würde, wäre sie wahrscheinlich schneller als auf meinem gut ausgelasteten Server andere Dinge zu tun.) Auch wird jeder Client die Kompilierung nicht nur einmal, sondern mehrfach innerhalb kurzer Zeit anstoßen. –