ServiceWorker是Chrome中的新API.它允许您执行的许多操作之一是拦截网络请求并使用缓存版本进行响应.我正在实现一个"脱机"按钮,它可以动态地将内容添加到缓存中.我想向用户报告我正在使用多少空间,以及我在缓存中放入了多少条目.
是否可以查询缓存以获取其中的项目数?我可以报告缓存的东西的总大小吗?
我想尝试使用生成ES6的Dart dev编译器.我安装了它
pub global activate -sgit git@github.com:dart-lang/dev_compiler.git
Run Code Online (Sandbox Code Playgroud)
然后我创建了一个简单的Dart类:
library wat;
class Person {
String first_name;
String last_name;
int amountOfAwesomeness;
Person(this.first_name, this.last_name, [this.amountOfAwesomeness = 0]);
String get name => "$first_name $last_name is awesome:$amountOfAwesomeness";
}
Run Code Online (Sandbox Code Playgroud)
然后我试着编译它:
dartdev -o ./ person.dart
Run Code Online (Sandbox Code Playgroud)
但我得到一个例外:
Unhandled exception:
'package:dev_compiler/src/dependency_graph.dart': Failed assertion: line 60 pos 16: 'false' is not true.
#0 _AssertionError._throwNew (dart:core-patch/errors_patch.dart:27)
#1 SourceGraph.nodeFromUri.<anonymous closure> (package:dev_compiler/src/dependency_graph.dart:60:16)
#2 _CompactLinkedHashMap.putIfAbsent (dart:collection-patch/compact_hash.dart:193)
#3 SourceGraph.nodeFromUri (package:dev_compiler/src/dependency_graph.dart:50:29)
#4 Compiler.Compiler (package:dev_compiler/devc.dart:76:38)
#5 main (http://localhost:60878/devc.dart:42:22)
#6 _startIsolate.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:253)
#7 _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:142)
Run Code Online (Sandbox Code Playgroud)
看起来像这样一个简单的例子应该有效.我究竟做错了什么?dev_compiler还没准备好试用吗?