【发布时间】:2023-04-01 00:10:02
【问题描述】:
我正在尝试创建一个无限滚动页面 - 有点类似于 this 这样的 tumblr 存档页面。我理解我必须通过服务器调用加载内容的概念,但我不知道如何像在 Tumblr 中那样实现这种“动画加载”设计。
我不想知道确切的代码,只想知道解决方案的整体概念。那么做这样的事情的最佳做法是什么?
我应该从服务器获取什么:一堆 JSON 数据 还是 完整的 HTML 页面?
我尝试解码上面的 Tumblr 页面,在我的网络流量页面上看到,在每个滚动事件中都有一个 POST 请求,它返回一个 full HTML 页面,该页面有自己的 JavaScript 和CSS 内容!
我猜动画逻辑在这个 JavaScript 内容中。
但是我对这个方法有两个问题:
- 当我从服务器获取完整的 HTML 页面(其中也包含新页面)时,如何丢弃当前显示的 HTML 文档并设置新的?
- 从性能的角度来看,每次都返回一个完整的 HTML 文档是不是太糟糕了?因为完整的文档也将包含存档的先前“页面”的结果。还是我想错了?
从服务器返回仅 JSON 的结果不是更好吗? (它必须在客户端上进行解析,但我猜它对网络流量更友好)
如果返回 JSON 会更好,为什么 Tumblr 以另一种方式工作?
【问题讨论】:
标签: javascript html json infinite-scroll