在DART代码分裂(Code Splitting in Dart)

2019-09-01 23:32发布

有没有什么办法,以某种代码分裂的飞镖? 我想推迟一些很少使用的代码加载加速的初始代码下载。 在Javascript中,我会注入新<script>标记,在GWT我只是叫GWT.runAsync() 是否有飞镖类似的东西?

根据这个链接 , <script>注入将无法正常工作(“每个HTML页面最多可以有一个飞镖脚本标签”,“我们不支持动态注射加载飞镖代码的标签。”)。 我也发现这个固定的问题 ,声称:“最初的一个[用例]被延迟加载,避免大量下载时,只是后来需要一些代码,或者只需要在某些情况下,我们现在有这样一个机制。”。 不幸的是,我无法找到如何实现这样的东西。 有人对这个有了解吗?

Answer 1:

更新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((_) { ...



文章来源: Code Splitting in Dart
标签: dart