Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JavaScript中处理一个大(12K+;行)数组_Javascript_Json_Indexeddb_Web Sql - Fatal编程技术网

在JavaScript中处理一个大(12K+;行)数组

在JavaScript中处理一个大(12K+;行)数组,javascript,json,indexeddb,web-sql,Javascript,Json,Indexeddb,Web Sql,这个项目的要求很奇怪,但我希望得到一些见解 我有一个CSV文件,包含大约12000行数据,大约12-15列。我将其转换为JSON数组,并通过JSONP(必须运行客户端)加载它。对数据集执行任何类型的查询都需要几秒钟才能返回一个较小的、经过过滤的数据集。我目前正在使用JLINQ进行过滤,但实际上我只是在数组中循环,并根据条件返回一个较小的集合 webdb或indexeddb是否允许我更快地进行此过滤?你知道有没有关于这类问题的教程/文章?这让我想起了John Resig写的一篇关于字典查找(真正的

这个项目的要求很奇怪,但我希望得到一些见解

我有一个CSV文件,包含大约12000行数据,大约12-15列。我将其转换为JSON数组,并通过JSONP(必须运行客户端)加载它。对数据集执行任何类型的查询都需要几秒钟才能返回一个较小的、经过过滤的数据集。我目前正在使用JLINQ进行过滤,但实际上我只是在数组中循环,并根据条件返回一个较小的集合


webdb或indexeddb是否允许我更快地进行此过滤?你知道有没有关于这类问题的教程/文章?

这让我想起了John Resig写的一篇关于字典查找(真正的字典,而不是编程构造)的文章

他从服务器端实现开始,然后着手于客户端解决方案。它应该为您提供一些改进当前工作的方法:

  • 缓存
  • 本地存储
  • 内存注意事项
(不再维护,请参阅以获取更新的拨叉。)

Crossfilter是一个JavaScript库,用于探索大型多变量
浏览器中的数据集。Crossfilter支持极快(如果在应用某些转换之前需要将整个数据对象加载到内存中,我会将IndexedDB和WebSQL排除在混合之外,因为它们通常都会增加复杂性并降低应用程序的性能

对于这种类型的过滤,像这样的库将大有帮助

IndexedDB和WebSQL在过滤方面发挥作用的地方是当您不需要或不想将整个数据集加载到内存中时。这些数据库最好利用它们索引行(WebSQL)和属性(IndexedDB)的能力


使用浏览器中的数据库,您可以将数据流式传输到数据库中,一次一条记录,然后光标在其中移动,一次一条记录。过滤的好处是,您可以将数据保留在“磁盘”(Chrome中的
.leveldb
和FF中的
.sqlite
数据库)上作为预筛选步骤或筛选本身,筛选出不必要的记录。

要提供任何有用的细节,我们必须查看数据的JSON格式以及尝试运行的查询/筛选。数据格式(或索引)之间的匹配所需的过滤/查询操作是提高速度的关键。我不熟悉webdb,但客户端sql可能会有所帮助。不过,最终,浏览器引擎将对您产生影响。这并不完全是苹果对苹果的操作,但我希望它能给您一些想法。这是我刚刚发现的一个惊人的库,显然是OP的p的正确答案问题。6年后我看到了这一切,它仍然令人惊讶。谢谢。