有没有什么办法,以某种代码分裂的飞镖? 我想推迟一些很少使用的代码加载加速的初始代码下载。 在Javascript中,我会注入新<script>
标记,在GWT我只是叫GWT.runAsync()
是否有飞镖类似的东西?
根据这个链接 , <script>
注入将无法正常工作(“每个HTML页面最多可以有一个飞镖脚本标签”,“我们不支持动态注射加载飞镖代码的标签。”)。 我也发现这个固定的问题 ,声称:“最初的一个[用例]被延迟加载,避免大量下载时,只是后来需要一些代码,或者只需要在某些情况下,我们现在有这样一个机制。”。 不幸的是,我无法找到如何实现这样的东西。 有人对这个有了解吗?
更新2014年9月: 这已得到修复!
飞镖现在可以轻松地支持具有特殊延迟加载import... deferred
语法。 例如:
import analytics.dart deferred as analytics
void main(){
analytics.loadLibrary.then((_) { // future
// code ready
enableAnalyticsControl()
});
}
下面是官方教程关于使用延迟加载。
我怕你想做什么仍然是不可能的(你没有使用dart2js这是假设)。
见这个问题 。
由于卡斯帕在评论3日表示,到目前为止,这已经讨论部署功能,您将得到dart2dart。 在支持该虚拟机与参与懒洋洋地通过库调用给dart2dart生成的代码访问加载来源结束。 该库API仍需虽然规定。
如果您正在使用dart2js可以做到这一点。 这里是如何做到这一点博客文章。
const lazy = const DeferredLibrary('reverser', uri: './part.js');
然后会让你调用lazy.load().then((_) { ...