用d3.js加载大型csv文件时出现Grails错误

Grails error loading big csv file with d3.js

本文关键字:Grails 错误 文件 csv d3 js 加载 大型      更新时间:2023-09-26

我在Grails中使用d3.js。我有一个叫vis的视图。在脚本部分,我调用了:

<body>
   <script>
       ...
       d3.csv("data", function(error, data) {
           if (error) throw error;           
            ...
       }
   </script>
</body>

在我的UrlMappings中,我有:

"/vis/data"(view:'/vis/data.csv')

当页面加载时,我得到以下错误:

Class: java.lang.OutOfMemoryError
Message: Error mapping onto view [/vis/data.csv]: Java heap space
Caused by: Java heap space

我的csv文件有230MB。

在Grails中调用d3库的正确方法是什么?我想把我的csv文件放在conf/data文件夹中。

编辑

我需要在客户端加载文件,我相信这与使用grails 下载大文件的问题不同

我知道大文件需要分部分读取,但如何在客户端实现这一点?

提前谢谢。

您的错误与以下SO非常相似:使用grails 下载大文件

基本上,避免将整个csv文件加载到内存中。Grails有文件的助手。由于您的CSV文件位于文件系统上,因此应该可以工作。如果您正在转换数据,您可能需要对创建缓冲区、迭代数据等进行一些研究。。。