我有Http服务器从不同的服务器加载数据(通过HttpClient)。你可以在这里看到代码:Dart HTTP server and Futures
我能够加载对JSON映射的响应,现在我希望将这个映射保存在内存中,直到它失效(我可以更快地获得整个映射集的更改信息)。将JSON映射保存到内存对象中并在需要刷新之前从内存中检索它的最佳方法是什么?
发布于 2014-06-19 01:31:55
已在上面的注释中解决。摘要:如果您需要在非常简单的“缓存”场景中保留值,您可以复制对象并通过复制新值来使其无效。
main() {
Map cachedMap = new Map();
var lastCached = new DateTime.now();
final Duration cacheDuration = new Duration(minutes: 10);
HttpServer.bind(InternetAddress.ANY_IP_V4, 4040).then((HttpServer server) {
print('listening on localhost, port ${server.port}');
server.listen((HttpRequest request) {
var now = new DateTime.now();
if (lastCached.add(cacheDuration).isAfter(now) && cachedMap.isNotEmpty) {
handleMap(request, cachedMap);
} else {
//do something to fill map
}
;
});
}).catchError((e) => print(e.toString()));
}https://stackoverflow.com/questions/24286779
复制相似问题