7

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

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

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

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

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

其他人遇到或解决这个问题吗?我还有其他选择吗?

4

2 回答 2

1

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

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

于 2015-08-02T02:34:30.753 回答
0

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

于 2015-08-02T18:00:31.053 回答