【发布时间】:2014-04-27 01:58:31
【问题描述】:
我的服务器端 Dart Web 应用为某些请求提供图像文件。
简而言之,这是它目前所做的:
HttpServer.bind(InternetAddress.ANY_IP_V4, 80)
.then((HttpServer server) {
server.listen((HttpRequest request) {
request.response.statusCode = HttpStatus.OK;
request.response.headers.contentType = ContentType.parse("image/jpg");
var file = new File("C:\\images\\myImage.jpg");
file.readAsBytes().then((List<int> bytes) {
bytes.forEach((int b) => request.response.writeCharCode(b)); // slow!
request.response.close();
});
}
}
这可行,但速度相当慢,我怀疑通过 HttpResponse.writeCharCode 单独写入每个字节是这里放慢速度的原因。
不幸的是,HttpResponse 上没有 .writeAllCharCodes 这样的东西。有writeAll,但它在字节数组的每个元素上调用toString() - 我们需要写入原始字节。
有什么建议吗?
【问题讨论】:
标签: dart dart-io dart-async