【问题标题】:How to prepare half dynamic web page with best performance? [closed]如何准备性能最佳的半动态网页? [关闭]
【发布时间】:2018-09-07 11:12:43
【问题描述】:

假设您有一个网页,其中包含一些基于用户会话的静态内容和一些动态内容。例如,您可能会看到页面顶部有一个菜单,其中显示用户名,但其余内容完全可缓存且是静态的。

可能有一个简单的解决方案来实现:

  1. 您可以使用 ajax 请求(不可缓存)在客户端处理页面的动态部分,例如单页应用程序。

  2. 可能还有另一种解决方案,客户端向中间件(例如 API 网关)发送请求,中间件从缓存中获取静态部分,从后端获取动态部分,然后将聚合内容返回给客户端。

  3. 在我看来,最糟糕的解决方案是禁用缓存。

Facebook 正在做什么,在第一次请求时加载动态部分,并通过 XHR 请求加载剩余内容。

问题:

  • 解决此问题的最佳做法是什么?
  • 第二种解决方案的缺点是什么?
  • 您如何看待显示您的用户名的 Stackoverflow 顶部菜单?

【问题讨论】:

  • 太宽泛了......

标签: performance dynamic static backend


【解决方案1】:

一个 AJAX 请求(或获取,或任何其他基于 HTTP 的请求)可以很好地通过使用 RESTful 服务进行缓存。

要更精细地控制应该缓存的内容,您可以使用服务工作者,例如通过将 https://developers.google.com/web/tools/workbox/ 添加到您的应用程序。

如果您的动态数据必须实时更新,您还应该看看 WebSockets。根据您的堆栈,您可以使用诸如 SignalR、socket.io 之类的包装库,或者只需遵循 http://websocketd.com/ 上的教程之一

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-03
    • 2017-11-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多