在完全基于服务器端的呈现(非Web 2.0)中,部署服务器端代码将在页面重新加载时直接更新客户端页面.相比之下,在基于反应的单页面应用程序中,即使在React组件更新之后,仍然有一些客户端使用旧版本的组件(他们只能在浏览器重新加载时获得新版本,这很少发生) – >如果这些页面完全是SPA,那么有些客户端可能会在几个小时后刷新页面.
应该采用什么技术来确保任何客户端不再使用旧的组件版本?
更新:API不更改,只有使用较新版本更新了React Component.
解决方法
您可以让一个React组件在应用程序加载时向服务器发出ajax请求,以获取“接口版本”.在服务器API中,您可以维护客户端版本的增量值. React组件可以将此值存储在客户端(cookie /本地存储/ etc)上.当它检测到更改时,它可以调用window.location.reload(true);应该
force the browser to discard client cache并重新加载SPA.或者更好的是,通知最终用户将会加载一个新版本,并询问他们是否希望保存工作,然后重新加载等等取决于您要做什么.