在同构单页面应用程序中,部署新服务器代码时客户端会发生什么?

thi*_*ien 7 isomorphic-javascript

我认为隐含的是,在实现同构单页面应用程序时,您还开发了一个私有API,您的客户端将会更新.

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

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

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

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

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

Mik*_*e G 1

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

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