javascript - Facebook 如何无延迟地滚动到时间线横幅中间?

标签 javascript web scroll

Facebook 有两种方式显示某人的时间线:从最顶部开始,显示完整的横幅,以及半滚动,因此横幅被切成两半,个人资料图片非常接近 float 导航。

不过,半滚动状态显得很自然,没有任何延迟。内容加载时页面不会突然跳转。

这个功能一般是如何实现的?简单的 window.scroll 似乎不会削减它,因为它太慢(必须等待内容加载才能真正滚动),并且会妨碍用户体验。

最佳答案

您在问题中假设页面的初始加载。这个假设是错误的,因为可以说,“页面”已经加载。

当您访问一个 Facebook 页面,然后导航到某人的时间线时,这并不是浏览器中的整个页面刷新,而是从一个页面切换到另一个页面。相反,这一切都是通过 ajax 完成的。 “上一个”页面并没有被浏览器真正卸载,“下一个”页面是通过ajax加载的。

至于 url 更改,那是另一个主题(历史推送状态)。

关于javascript - Facebook 如何无延迟地滚动到时间线横幅中间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13443368/

相关文章:

javascript - 如何使 useEffect 仅在单个依赖项发生更改时重新运行?

javascript - GM_registerMenuCommand 未定义

rest - 在 RESTful API 中更改密码(PATCH 上的服务器验证)

javascript - 在触摸开始时向主体添加类而不是 .scroll()

c++ - 添加水平滚动条到控制台

javascript - Comet/长轮询/永久帧问题

javascript - 防止通过 CSS/JS/等在 Google Chrome 中重新绘制

web - 使用动态数据自动填充 Web 表单

java - 如何: JAR -> Web hosted application?

Android 的微调器在文本太长时自动滚动