我有一个20列的网格,其中包含100到1,000行。
如果每个单元格平均为50个字符,我估计1000行网格将包含20x50x1000个字符= 1MB。
此网格的数据必须由服务器在一个(或多个)AJAX请求中返回。网格是不可编辑的......它只是一种表示大量信息的方式(特别是关于人类基因)。
我很难决定是否应该在一个或多个AJAX请求中返回此消息。您是否认为在一个AJAX请求的XML / JSON响应中返回的数据太多(1MB)?这是反模式吗?或者看看所有数据在逻辑上是一个网格的一部分是否有意义?
这更像是一个设计问题而不是其他任何问题。我感谢任何反馈。
答案 0 :(得分:1)
您是否可以使用非Ajax请求加载所有数据,然后仅更新通过Ajax更改的单元格?
答案 1 :(得分:1)
可能有趣的是在服务器中保持网格“状态”,因此在编辑每个字段后,您将新内容发送到服务器。这会增加使用的服务器使用量和带宽,但是当用户发送“submit”命令时会使响应更快。这也将允许更快的输入验证(几乎在用户修改单元格之后显示错误消息,而不是半小时之后)。
作为安全方面的改进,在内存(JS内存)中保留一个“脏”(已修改)字段列表,并在其相关的ajax响应告诉您服务器已执行ajax时重置该值呼叫;当用户点击“提交”时,所有仍然脏的字段将再次发送到服务器。
也就是说,只要你远离XML,我认为它不是一个如此繁重的负载(当然这将取决于硬件和你必须服务的并发用户)。
答案 2 :(得分:0)
我建议您批量获取数据。即,获取前20-25行,或刚刚足以填充视口,然后在用户滚动或接近上一批结束时逐渐加载下一批。这可能会使它无缝。
考虑到您可能拥有的记录数量,一次获取所有数据可能不是一种选择。
此外,它不是关于太多数据,而是关于获取数据所花费的时间。我可以保证(根据你如何操纵json响应),浏览器可以处理任何数量的数据。