渲染大型JSON数据集会导致浏览器挂起/崩溃/无响应

时间:2018-06-20 17:18:27

标签: php jquery json codeigniter-3 infinite-scroll

我正在获取一个包含1500多个记录的大型json数据集,其中包含有关酒店的信息,并尝试将其呈现为HTML,这会导致浏览器挂起/崩溃或变得完全无响应。

该应用程序是CodeIgniter 3(PHP / MySQL)应用程序,其中的一种控制器方法向远程服务器发送了curl请求,并接收了我需要渲染的庞大数据集。

我正在服务器端渲染所有内容,然后将视图作为ajax响应回显,这显然不起作用。

另一个问题是我无法从服务器中分批获取数据,要么一次全部获得,要么一无所获。

在这一点上,我没有主意,是否有比在服务器端处理整个数据集并将其回显到浏览器更好的方法来呈现数据集(显然,响应大小很大,以至于造成延迟)。

在这种情况下,我愿意接受任何可行的建议/解决方案。

我正在寻找的是一次渲染接收到的数据集的一部分,并在我滚动页面时从剩余的数据集中加载更多的数据。

我的目标是拥有一个快速呈现的页面/ DOM,在其中可以进行一些DOM操作,例如排序,过滤等,而不会导致整个浏览器崩溃。

任何帮助将不胜感激,我乐于尝试新事物。

此致

Shyam S。

1 个答案:

答案 0 :(得分:0)

最初的想法是分批检索,足以有用并且不会过多降低用户体验。但是,您说的是全部或全部。在这种情况下,您似乎需要某种中间存储。也许您将JSON本地写入json文件,然后在本地文件上批量执行AJAX。文件只是一个示例,您可以将其存储在内存中,但是可能会出现相同的问题。您也可以将其粘贴到数据库中。

无论您做什么,加载大量HTML都会导致浏览器运行缓慢。最好装入100条记录(或任何合理的数量),并随着用户向下滚动触发要加载的下一组记录。