建议的方法来存储和加载大型JSON数据

时间:2015-01-16 11:28:35

标签: jquery json asp.net-mvc-4 jquery-autocomplete

我有一个列表(15000项)的员工姓名和ID以及我在应用程序的会话开始中获得的主题名称和ID的列表(5000项)。

我将这些作为JSON字符串存储在Session变量中,然后在View中将它们写出来。

然后,jQuery自动完成功能使用视图中的JSON字符串来显示员工或主题列表。

这是最好的方法吗?不知何故,View中有大JSON字符串似乎不对。

我应该将JSON字符串存储在文件中,然后访问它以进行自动完成吗? (我在脚本中运行了很长时间才遇到问题)

2 个答案:

答案 0 :(得分:2)

评论作为答案:对于那么多项,您应该使用基于Ajax的自动完成,并且只返回所需的结果。对包含20,000个项目的页面进行膨胀会导致浏览器/页面性能下降,应始终避免使用。

作为一般的经验法则,如果您的数据超过100条记录,请使用Ajax仅下拉匹配的结果。

答案 1 :(得分:0)

我认为您最好使用AJAX。使用JSON通常意味着您将大量数据发送给客户端,无论该数据是否有用。从安全的角度来看,它也不赞成。

此外,我最近处于类似的情况,AJAX不是一个选项,所以我决定尝试使用CSV-JSON解析器...这可能是一个选项。

使用解析器意味着我的基于JSON的代码仍然有效且可用,但我的数据位于一个整齐的独立CSV文件中,并在服务器端进行处理。这大大减少了对JSON混乱(ID,大小,数组......等)的需求

我并不是说这是最好的解决方案,但它对我有用。数据渲染速度足够快,更重要的是,我的代码更加整洁,因为我没有必要拥有大量的JSON,只需几行即可启动解析器,并且我能够操作数据很容易因为CSV比JSON更有用,因为它位于自己的表格文件中,我个人认为。此外,根据解析器的性质,这可以使服务器端的数据得到额外的好处,因此大量的信息不会直接发送给客户端'结束,只有他们要求的数据...

我不是这方面的专家,所以请带上一粒盐。但重要的是,如果您拥有那么多数据,就不应该使用JSON。

祝你好运。 :)