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