繁体   English   中英

在 React.js 中自动刷新页面

[英]Auto refresh a page in React.js

我需要不断更新/刷新我的页面以确保它与我的服务器同步。 目前,我正在使用 setInterval,但我读到 serviceWorkers 可能会以更好的方式解决我的问题。 是否推荐使用 serviceWorkers? 后台同步似乎是一个很好的起点。)

或者还有其他选择吗?

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

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

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

不,setInterval 是要走的路。

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

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

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

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

我有类似的挑战,我计划尝试https://www.npmjs.com/package/react-refetch 我的应用程序不够复杂,不需要 redux,所以我宁愿避免这种情况。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM