我想知道在现代浏览器中,对于一个Web应用程序,是否有一种适当的方法(如互联网协议、浏览器API等)可以从Web服务器(在我的情况下是nodejs,但问题集中在客户端)获取大数据流,并将其保存到客户端文件系统的一个大文件中。假设数据量过大,无法完全缓存在应用程序的分配内存中,因此我认为该过程应该直接将数据块从流中添加到文件中。这些数据基本上是数万个数据库记录,应写入诸如CSV之类的格式。希望我表达清楚了。
你问是否有一种“适当”的方式。很遗憾,这项技术的支持不够好,而且是全新的。然而,如果你足够勇敢去尝试,这就是你需要做的。1. 从Web服务器获取数据流如果你不必支持IE,那么可以使用Fetch API。请参见this question。如果你必须支持IE,那么可以使用websocket来推送一点一点的数据。2. 将数据流写入磁盘 StreamSaver.js是一个项目,它试图使用ReadableStream API来实现这个目标,但目前只在Opera和Chrome中有效。
pipe()
。https://nodejs.org/dist/latest-v6.x/docs/api/stream.html#stream_readable_pipe_destination_options - Diego ZoracKy