React.js 后自动刷新页面

Auto refresh a page in React.js

我需要持续 update/refresh 我的页面以确保它与我的服务器同步。目前,我正在使用 setInterval,但我读到 serviceWorkers 可能会以更好的方式解决我的问题。是否推荐使用 serviceWorkers? (background-sync 似乎是一个很好的起点。)

或者还有其他选择吗?

没有。 setInterval 是要走的路。

ServiceWorker 用于缓存您的应用程序内容以供离线使用(浏览器将下载 serviceworker 中定义的站点,您可以离线使用某些功能)。但是,您无法联系您的服务器,因为这需要互联网访问。

后台同步进入游戏。假设您有一个聊天应用程序(基于 Web)之类的东西。您第一次查看该应用程序并在后台下载所有文件。之后,您可以离线查看页面并阅读您已收到的消息。首先,您不能发送消息,因为那需要联系服务器。但是有了后台同步,你可以安排它在用户下次在线时发送 - 所以只写你的消息并点击发送,它会被保存并在你下次连接到互联网时被推送到服务器。

我认为您正在通过 API 访问服务器的数据,因此 serviceworker 和后台同步都不会用于这些任务。

只需向您的服务器发送请求并更新 React 应用程序中的数据,就像您现在使用 setInterval 所做的那样。

假设必须更改 SPA 中的许多逻辑,API 但您可以使用 WebSocket 协议代替 HTTP/HTTPS。

只需使用 wss 向您的 React 应用程序发送通知,以使用经典的异步方式获取数据 http/https,您可以使用 Redux/Flux 存储数据,它会刷新组件自动。

我有类似的挑战,我打算尝试 https://www.npmjs.com/package/react-refetch。我的应用程序不够复杂,不需要 redux,所以我宁愿避免使用它。

经过一些研究,WebSockets 似乎是在网站上进行实时刷新的最佳选择。 Websockets 有助于维护网站和服务器之间的开放双向连接,以便每当服务器上有更新时,服务器可以将更改推送到网站上。