json - 在网站上显示大量数据的最有效方式是什么?

标签 json database optimization web

我有一个优化问题。 假设我正在制作一个网站,它有一个包含 5,000 对(约 582 kb)的 JSON 文件,通过 3 个 slider 和一些选择标签的组合,可以显示每个值。所以每对之间出现的时间以微秒为单位。

我的问题是:如果网站也可以在移动浏览器上运行,那么将 5000 对数据放在 JSON 文件中还是数据库中效率更高?为什么?

最佳答案

我正在构建一个具有类似要求的图片网站,经过数月的调查和试验,我可以说这个问题没有简单的答案。但我会尝试给你一些提示:

  1. 尝试将数据分成 block ,例如 - 如果您的 slider 选择 1 到 100 之间的值,而不是准确地提供客户选择的值,向上舍入可能 +-10 或更多,您可以在没有服务器往返的情况下继续在客户端过滤的方式。查询前将所有数据保存在客户端内存中。

  2. 不要渲染超过屏幕可见的元素,JSON 存储和过滤速度很快但 DOM 非常慢,尽量减少可见元素。

  3. 使用 304 缓存 - 意思是 - 只要客户端两次请求相同的数据;使用 etag 发送正确的 304 响应。例如 - 这里的一个好的经验法则是使用您很容易知道的东西,例如数据库中的最大 ID 等来查看自上次调用以来是否更新了任何新数据。如果没有,只需发送 304,客户端将使用他上次拥有的任何内容。

  4. 使用绝对定位。甚至不要尝试使用 CSS float 或类似的东西,它不会工作。只需计算每个元素的每个位置即可。这也将帮助您实现技巧 2(通过过滤掉可见屏幕之外的所有元素)。您仍然可以使用 CSS transitions,它在 slider 变化时提供漂亮的动画。

  5. 您可以尝试使用 IndexedDB 来帮助客户端查询,但不幸的是,不同浏览器的支持仍然不够好,而且您在存储方面遇到了瓶颈,最好使用普通缓存和适当的标题。

祝你好运!

关于json - 在网站上显示大量数据的最有效方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21222184/

相关文章:

javascript - 将条目附加到嵌套数组中

javascript - 使用mysql数据创建条形图

java - 使用 GET REST 调用提取以 json 格式返回的不同值

mysql - 查看SQL数据表

r - 使用 stringdist 对变量上的数据进行分区以加速 "fuzzy match"

c - "const"有成本吗?

json - 来自 JSON 文件的 Powershell Out-GridView

database - 如何利用实体关系图对数学表达式建模?

mysql - 指定的 key 太长 : max key lenth is 3072 bytes

algorithm - 查询 3d 点