javascript - Web 开发的延迟加载和性能

标签 javascript json ajax lazy-loading

假设我想在博客上延迟加载评论,这样最初只显示 10 个最新的评论,然后在滚动时延迟加载下一批 10 个评论。

选项 A:在页面加载时从服务器发送整个结果数组,并在客户端一次处理 10 个渲染。

选项 B:在页面加载时加载 10 个,并根据需要发送 ajax 请求再获取 10 个。

假设对象数量可以达到 40,000 - 在页面加载时向客户端发送这么大的 json 数组可以吗?

我认为权衡如下:使用选项 A,您可以最大限度地减少对数据库的访问,但您可能会向客户端发送太多数据(40,000 条记录的 json 数组≅ 7mb),这对于移动用户来说并不理想。使用选项 B,您可能有太多的数据库访问次数。

这方面有最佳实践吗?也许在中间某个地方妥协?也就是说,急切地加载 200 个对象到客户端,最初只渲染 10 个,然后再渲染 10 个,直到 200 个对象用完,然后根据需要从服务器延迟加载?想看看其他人是如何解决这个问题的。

最佳答案

我会完全按照您的建议进行,并进行小额摊销改进。

首先,您预加载 200 个项目,并以 10 个为一组进行渲染。当一半已加载的推荐显示为您预加载下 200 个项目时。

根据您的任务,您可以进一步动态计算下一批评论的大小。如果用户阅读速度较慢,则将批大小减少到 100。如果用户滚动速度快,则将批大小增加到 1000。

关于javascript - Web 开发的延迟加载和性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46382386/

相关文章:

Javascript 与 MySQL 数据库交互

javascript - 似乎无法捕捉到 javascript 为空

javascript - 导出到Excel时如何隐藏表格中的第三行?

ios - 在 iOS 错误中解析 JSON 图像 url

java - 来自 StackExchange API 的 JSON URL 返回乱码?

javascript - 使用 Javascript 访问 JSON 解析 SOAP 信封

php - 使用 ajax 将输入值发送到 php,结果打印到 div

php - xajax扩展列表查询

javascript - 纯 JavaScript - 定时动画 - 一致的高度?

javascript - 使用 javascript 聚焦不会像使用 Tab 时那样显示复选框的轮廓样式