Скомпилировать дротик в браузере

В моем приложении я создаю большие классы дротика. Сейчас я компилирую их на сервере, что занимает процессорное время. Было бы намного лучше скомпилировать код Dart в браузере. Затем код загружается через spawnURI.

Можно ли вызвать компилятор dart2js из кода Dart поддерживаемым способом, как это делается на try.dartlang.org, или мне нужно скопировать компилятор в мой проект?


person Karsten Becker    schedule 27.09.2013    source источник
comment
Это... не очень понятно, что вы пытаетесь сделать. Вы компилируете Dart в JS только один раз, верно? Кроме того, try.dartlang.org выполняет компиляцию на сервере. Компилятор dart2js написан не на JavaScript, его нельзя запустить в браузере.   -  person JJJ    schedule 27.09.2013
comment
Мы хотели бы узнать больше о вашем варианте использования. Хотите спросить по адресу [email protected]?   -  person Seth Ladd    schedule 28.09.2013
comment
Юхана, но dart2js написан на dart, который можно скомпилировать с dart2js в javascript. Звучит рекурсивно, но это так ;)   -  person Karsten Becker    schedule 28.09.2013
comment
Вариант использования следующий. Пользователь заходит на beta.pshdl.org и начинает что-то кодировать в PSHDL. Затем он хочет запустить симуляцию этого кода PSHDL. Затем код PSHDL компилируется в Dart на стороне сервера и загружается через spawnURI на стороне клиента. Это хорошо работает, когда клиентом является Dartium, что в большинстве случаев не так. Таким образом, мне нужно скомпилировать сгенерированный код Dart в js через dart2js. К сожалению, у меня нет фермы серверов Google для размещения всего этого, и поэтому я хочу переместить dart2js на клиент. Надеюсь, это поможет. Еще несколько объяснений можно найти на моем blog.pshdl.org   -  person Karsten Becker    schedule 28.09.2013


Ответы (1)


Компиляция Dart в JavaScript будет выполняться быстрее на сервере, потому что вы можете запускать dart2js через Dart VM. try.dartlang.org работает в специальной версии dart2js, которая не была объединена с основным исходным кодом.

person Seth Ladd    schedule 27.09.2013
comment
Этого я и ожидал :( - person Karsten Becker; 28.09.2013
comment
Можете ли вы рассказать нам больше о том, почему вы хотите скомпилировать на клиенте? Это будет медленнее. Спасибо за фон. - person Seth Ladd; 29.09.2013
comment
Потому что каждый вызов dart2js занимает на сервере не менее 3,5 с. Поскольку у меня нет фермы серверов, а на самом деле просто крошечный виртуальный сервер, обслуживающий несколько клиентов, полностью заблокировал бы его. Например, если 10 клиентов решат запустить компиляцию dart2js примерно в одно и то же время, последний должен ждать до 35 секунд. Таким образом, даже если компиляция на стороне клиента займет больше, чем 3,5 секунды, она, вероятно, будет быстрее, чем на моем хорошо загруженном сервере (у которого также есть другие дела). Кроме того, каждый клиент будет запускать компиляцию не один раз, а несколько раз в течение короткого времени. - person Karsten Becker; 30.09.2013