我有一个列表(15000项)的员工姓名和ID以及我在应用程序的会话开始中获得的主题名称和ID的列表(5000项)。
我将这些作为JSON字符串存储在Session变量中,然后在View中将它们写出来。
然后,jQuery自动完成功能使用视图中的JSON字符串来显示员工或主题列表。
这是最好的方法吗?不知何故,View中有大JSON字符串似乎不对。
我应该将JSON字符串存储在文件中,然后访问它以进行自动完成吗? (我在脚本中运行了很长时间才遇到问题)
答案 0 :(得分:2)
评论作为答案:对于那么多项,您应该使用基于Ajax的自动完成,并且只返回所需的结果。对包含20,000个项目的页面进行膨胀会导致浏览器/页面性能下降,应始终避免使用。
作为一般的经验法则,如果您的数据超过100条记录,请使用Ajax仅下拉匹配的结果。
答案 1 :(得分:0)
我认为您最好使用AJAX。使用JSON通常意味着您将大量数据发送给客户端,无论该数据是否有用。从安全的角度来看,它也不赞成。
此外,我最近处于类似的情况,AJAX不是一个选项,所以我决定尝试使用CSV-JSON解析器...这可能是一个选项。
使用解析器意味着我的基于JSON的代码仍然有效且可用,但我的数据位于一个整齐的独立CSV文件中,并在服务器端进行处理。这大大减少了对JSON混乱(ID,大小,数组......等)的需求
我并不是说这是最好的解决方案,但它对我有用。数据渲染速度足够快,更重要的是,我的代码更加整洁,因为我没有必要拥有大量的JSON,只需几行即可启动解析器,并且我能够操作数据很容易因为CSV比JSON更有用,因为它位于自己的表格文件中,我个人认为。此外,根据解析器的性质,这可以使服务器端的数据得到额外的好处,因此大量的信息不会直接发送给客户端'结束,只有他们要求的数据...
我不是这方面的专家,所以请带上一粒盐。但重要的是,如果您拥有那么多数据,就不应该使用JSON。
祝你好运。 :)