【问题标题】:In an isomorphic single page application, what happens to clients when you deploy new server code?在同构单页应用程序中,当您部署新的服务器代码时,客户端会发生什么情况?
【发布时间】:2015-08-03 02:00:31
【问题描述】:

我认为,在实现同构单页应用程序时,您还开发了一个私有 api,您的客户会点击该 API 进行更新,这是隐含的。

我的问题是,当您将代码更改推送到服务器时,将会有“陈旧”的客户端仍在运行您的旧客户端代码,然后使用可能不兼容的参数和假设来访问您的 api。

我看到了两种可能的解决方案:

  1. 版本您的 api。您的客户端代码必须使用其当前版本号访问 api;您的服务器代码因版本控制逻辑而变得臃肿。
  2. 实现某种套接字/推送消息,以告诉客户端在部署发生时进行整页刷新以获取最新部署的代码。 (这些连接在服务器部署后是否仍然完好无损?)

(如果您还需要支持移动应用程序客户端,Api 版本控制是必要的,但对于一个网站来说,似乎有很多不必要的工作。)

还有其他人遇到或解决过这个问题吗?我还缺少其他选项吗?

【问题讨论】:

    标签: isomorphic-javascript


    【解决方案1】:

    我建议将这两种技术结合起来。我建议对 API 进行版本控制,然后在每次 API 调用时由服务器执行版本检查。如果版本不等于最新版本,则向客户端发送一条消息,通知他们进行完全刷新。

    这样您的代码就不会因为一堆不同的版本控制逻辑而变得臃肿。您可以创建一个验证函数,在每次调用开始时调用该函数,并在客户端过期时返回一条消息进行更新。

    【讨论】:

      【解决方案2】:

      我认为将应用程序置于代码升级所需的几个小时的维护计划中。在此之前通知您的用户。并选择用户活跃度非常低的时间。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-08-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-12-01
        • 2018-08-17
        • 2023-02-02
        • 1970-01-01
        相关资源
        最近更新 更多