强制React应用在部署后更新

8

澄清一下:用户加载您的SPA应用程序。您构建并部署了一个新版本。您希望用户的应用程序在不重新加载页面的情况下更新? - Gilbert Nwaiwu
不需要手动刷新页面 - TangMonk
我认为没有任何问题。你知道浏览器是如何工作的吗?需要发起网络请求从服务器获取你部署的最新更改。 - U r s u s
我猜你正在寻找热模块替换,可能需要查看https://webpack.github.io/docs/webpack-dev-server.html https://webpack.github.io/docs/webpack-dev-server.html。 - Anuradha Kulkarni
可能是如何强制更新单页应用程序(SPA)页面?的重复问题。 - lobati
可能是部署的React Web应用程序需要强制刷新的重复问题。 - Michael Freidgeim
2个回答

0

你的需求有点类似于一个聊天应用程序(通过自动发送聊天消息来更新自己)

我在我的项目中也使用了这种自动更新的思路,使用了Meteor/React和websocket。不过,我的项目架构相当复杂,不确定你的是否更简单。

无论如何,你可以阅读下面的文章,对你会有帮助:

http://julian.io/live-chat-app-using-meteor-and-the-ddp-protocol/

如果您仍需要更多有关如何实现它的解释,请随时询问,我会尽力使用自己在项目中的经验进行解释。


链接的文章很长,但是我找不到与问题相关的答案。 - Michael Freidgeim

-1
答案是告诉浏览器在从您的主机下载JavaScript包时不要缓存它。您需要设置头文件:
"headers": [
  {"source": "**", "headers": [{"key": "Cache-Control", "value": "no-cache"}]}
]

如果您正在使用Create React App,则可以在默认存储库的README中找到相应的说明,例如Firebase Hosting。
如果您希望应用程序监听生产版本的更改,则可以轮询一个端点,该端点会告诉您当前版本是什么,并将其与本地存储进行比较。

1
但是移动设备电池怎么办?请查看这篇文章:https://marmelab.com/blog/2016/08/29/auto-reload-spa-on-mobile-setinterval.html - maxi-code

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接