有没有办法在Dart中进行某种代码分割?我想推迟加载一些很少使用的代码来加速初始代码下载.在Javascript中,我会<script>在GWT 注入一个新标签,我只是打电话GWT.runAsync().Dart有类似的东西吗?
根据此链接,<script>注入将不起作用("每个HTML页面最多只能有一个Dart脚本标记","我们不支持动态注入加载Dart代码的标记.").我还发现这个固定的问题声称:"最初的一个[用例]是延迟加载,以避免在稍后需要某些代码时进行大量下载,或者可能仅在某些情况下需要.我们现在有了这种机制." 不幸的是,我找不到任何关于如何实现这一点的内容.有人对这个有了解吗?
2014年9月更新: 此问题已修复!
Dart现在可以使用特殊import... deferred语法轻松支持延迟加载.例如:
import analytics.dart deferred as analytics
void main(){
analytics.loadLibrary.then((_) { // future
// code ready
enableAnalyticsControl()
});
}
Run Code Online (Sandbox Code Playgroud)
这是关于使用延迟加载的官方教程.
我担心你想做的事情仍然不可能(假设你没有使用dart2js).
看到这个问题.
正如Kasper在评论3中所说的,到目前为止,已经讨论了一个部署功能,您将使用dart2dart获得.虚拟机参与支持这一点,最终通过库调用使dart2dart生成的代码可以懒惰地访问加载源.但是仍然需要指定此库API.
如果您正在使用dart2js可以做到这一点.这是一篇关于如何做到这一点的博客文章.
const lazy = const DeferredLibrary('reverser', uri: './part.js');
Run Code Online (Sandbox Code Playgroud)
哪个会让你打电话 lazy.load().then((_) { ...
| 归档时间: |
|
| 查看次数: |
779 次 |
| 最近记录: |