【发布时间】:2013-06-21 06:17:07
【问题描述】:
背景:
我有一个单页 JavaScript 网站,每天至少部署一次。它获得了合理的流量,并且用户在其上停留了相当长的时间,直到他们结帐并且 JavaScript 通过 XHR 与后端交互。
问题:
部署后浏览器中加载的 JavaScript 可能不再与后端(本例中为 Rails)兼容。
可能的解决方案:
a) 定期比较资产管道指纹,window.confirm 与重新加载请求是否相同。
b) 与 XHR 请求一起发送 X-JS-fingerprint 标头,如果不兼容则返回 409 Conflict,JavaScript 将触发错误并重新加载 window.confirm。
c) 运行两个后端;一个使用新的 JS 和新的后端代码立即部署 (SERVER-1),另一个仍然支持旧的 JavaScript XHR 请求格式 (SERVER-2)。与 b) 一样,X-JS-fingerprint 标头将被发送,但不是 409,而是向 SERVER-2 发送 307 临时重定向以完成请求。一旦旧会话全部清除,SERVER-2 就会被部署并关闭,直到再次需要它为止。
如果有人以前考虑过这个问题,我很感兴趣。如果您对此主题有任何想法,请告诉我。
【问题讨论】:
标签: javascript deployment single-page-application