【发布时间】:2018-09-07 11:12:43
【问题描述】:
假设您有一个网页,其中包含一些基于用户会话的静态内容和一些动态内容。例如,您可能会看到页面顶部有一个菜单,其中显示用户名,但其余内容完全可缓存且是静态的。
可能有一个简单的解决方案来实现:
-
您可以使用 ajax 请求(不可缓存)在客户端处理页面的动态部分,例如单页应用程序。
-
可能还有另一种解决方案,客户端向中间件(例如 API 网关)发送请求,中间件从缓存中获取静态部分,从后端获取动态部分,然后将聚合内容返回给客户端。
-
在我看来,最糟糕的解决方案是禁用缓存。
Facebook 正在做什么,在第一次请求时加载动态部分,并通过 XHR 请求加载剩余内容。
问题:
- 解决此问题的最佳做法是什么?
- 第二种解决方案的缺点是什么?
- 您如何看待显示您的用户名的 Stackoverflow 顶部菜单?
【问题讨论】:
-
太宽泛了......
标签: performance dynamic static backend