Dart2js: можно ли запустить Root Isolate из Javascript?

У меня есть приложение, скомпилированное в dart2js (версия Dart SDK 0.6.13.0_r25630), и я хочу загружать его с помощью RequireJS каждый раз, когда мне нужно.

Прежде всего, спасибо Богу за функцию-обертку в скомпилированном javascript, но в моем случае этого недостаточно :(

Я использую requirejs для загрузки приложения dart2js.

 require(["application.dart"], function () {});

но я хотел бы обрабатывать, когда запускать приложение. например, по событию клика.

require(["jQuery","application.dart"], function (jQuery,$) {
        jQuery(element).click(function(){
           $.startRootIsolate($.main$closure);
        })

});

Я взломал скомпилированный Javascript, но хотел бы знать, возможно ли это нативным способом.

в application.dart.js я завернул функцию в модуль AMD

(function (factory) {
if (typeof define === 'function' && define.amd) {
    // AMD. Register as anonymous module.
    define([],function(){
        return factory();
    } );
} else {
    // Browser globals.
    factory();
}
})(function($) {...})

затем я возвращаю $ Object

return $;

и, наконец, я прокомментировал эту строку кода, где я нашел

$.startRootIsolate($.main$closure);

Спасибо всем

Марко


person marcaia    schedule 31.07.2013    source источник


Ответы (1)


Я сомневаюсь, что это возможно без взлома кода, как у вас. Однако в Dart 1.6 добавлена ​​поддержка отложенной загрузки, что может дать вам альтернативный способ делать то, что вам нужно?

http://news.dartlang.org/2014/08/dart-16-adds-support-for-deferred.html

person Danny Tuppeny    schedule 14.09.2014