使用 amp:access 时是否有减少闪烁的策略?

Are there strategies for reducing flicker when using amp:access?

在基于amp:access的AMP中隐藏和显示元素时,似乎有些闪烁是不可避免的。除了占位符和把东西放在首屏之外,还有其他方法可以让它变得更好吗?也许在请求 returns 之前隐藏整个 body 是有意义的?

完全隐藏正文将非常不理想,因为授权响应的延迟可能会有很大差异。相反,建议尽可能多地显示并仅在授权响应 returns 时隐藏内容。所以,你是对的,保持首屏不变是最好的策略。

实际上,闪烁效果也可以通过以下方式减弱一些: 1.预渲染。使用 AMP 的主要应用程序,例如 Google 搜索,预呈现文章,从而更早地执行授权响应 - 可能在用户实际阅读内容之前。这不在页面作者的控制范围内,但要记住。 2.授权响应可以缓存,特别是对于订阅者。这将导致更早的评估。

另一件可能在未来有所帮助的事情 - AMP 正在考虑添加一个 amp-access-hide=elide 选项。您可以通过 https://github.com/ampproject/amphtml/issues/2967 追踪它。它背后的想法是在受限时显示模糊(不可读)的内容。这将减少闪烁,因为它只是消除模糊而不是显示整个部分。这个还在讨论中。

此外,AMP 会在显示内容之前等待非常有限的时间,希望授权响应快速到达(请随时在 GitHub 上提交错误),但它会是非常有限。