Javascript 将文件内容保存在内存中的变量中

Javascript 将文件内容保存在内存中的变量中,javascript,Javascript,我感兴趣的是探索在浏览器中使用javascript源文件分析目录的可能性,以便在画布上可视化它们。这将使用Esprima生成AST 这意味着我需要读取类似于zip或文件夹上传程序的内容,然后开始在内存中加载文件 我面临的瓶颈是: 如果源代码文件包很大,这可能会导致内存问题。Localstorage也不是为此而构建的 不能在服务器上完成,因为用户可能不想将源代码上载到服务器,因此必须根据业务需求在本地完成- 在相当大的浏览器中,这不是一个好的文件系统api 达到预期结果的可接受方式是什么? 这

我感兴趣的是探索在浏览器中使用javascript源文件分析目录的可能性,以便在画布上可视化它们。这将使用Esprima生成AST

这意味着我需要读取类似于zip或文件夹上传程序的内容,然后开始在内存中加载文件

我面临的瓶颈是:

  • 如果源代码文件包很大,这可能会导致内存问题。Localstorage也不是为此而构建的
  • 不能在服务器上完成,因为用户可能不想将源代码上载到服务器,因此必须根据业务需求在本地完成-
  • 在相当大的浏览器中,这不是一个好的文件系统api
达到预期结果的可接受方式是什么?

这能做到吗

< P>使用不适合本地存储但需要坚持的大的事物。

< P>我建议考虑。它不是indexdb的包装器,似乎比sqlite性能更好。我过去也使用过,但它只在内存中。

什么是“AST”?抽象语法树。我可能会找Electron来做一个桌面应用。你认为会有什么样的分析?您是否需要将AST保存在内存中,或者只是逐个文件分析并存储结果?@Bergi的想法是创建所有源代码的AST,并将其可视化到画布上,以便以编程方式对其进行操作。仔细想想,我真的需要源代码文件在客户机上持久化。仅仅关闭标签页并失去所有上传状态将是一个混乱。之后,用户还需要重新下载包含生成源代码的捆绑包。你所说的“可视化”是什么意思?画布不够大,无法一次显示应用程序的所有源代码,因此我认为您应该只显示一些指标。“这样它们就可以通过编程方式进行操作。”-想构建一个?那么就不要使用画布。您是否建议先研究IndexedDb接口?以前没有使用过这两种工具。似乎不适用于浏览器。TBH,我从来没有直接使用过indexDB,也没有在它上面使用过包装器——这取决于目标平台,即electron应该支持realm。如果realm不是基于索引db或sqlite构建的,它在浏览器中如何工作?@Bergi,realm是在OP之后提出的建议“我可能会在Electron中寻找桌面应用程序”