为什么以及如何解决我的反应应用程序中的 SharedArrayBuffer 警告

问题描述

我的 React-app 已经安装了 axios(依赖项)和 json-server(dev-dependency),在我这样做之后,我的 React-app 开始抛出以下警告消息

[Deprecation] SharedArrayBuffer will require cross-origin isolation as of M91,around May 2021.


这是什么,我如何解决错误以及为什么会发生这种情况?

我是该领域的初学者,错误中提供的链接使用的是我无法理解的高级语言,[this](https://developer.chrome.com/blog/enabling-shared-array-buffer/ ) 是控制台中提供的链接

解决方法

它是什么? - 从 91 版开始,Chrome 将需要跨域隔离才能使用 SharedArrayBuffer。

解决方案:您只需将 reactreact-dom 版本从 17.0.1 更新为 17.0.2

您可以使用 yarn upgrade react --latestyarn upgrade react-dom --latest 来升级和更新 package.json。另外,请在更新 npm 包后重启服务器。


什么是 SharedArrayBuffer 以及为什么要改变? Official Doc

SharedArrayBuffer 是一个 JavaScript 对象,用于跨网站上的线程共享内存空间。在发现名为 Spectre 的漏洞之前,网站已使用它。但是,由于 Spectre 是一个 CPU 级别的漏洞,并且在可预见的未来不太可能修复,因此浏览器决定禁用 SharedArrayBuffer 对象。

虽然 Chrome 以站点隔离作为临时补救措施在桌面上重新启用了它,但 cross-origin isolation 被标准化为一种安全启用 SharedArrayBuffer 对象的方法。从计划于 2021 年 5 月下旬发布的 91 版开始,Chrome 将在跨域隔离之后对 SharedArrayBuffer 对象进行门控。 Firefox 启用了 SharedArrayBuffer 对象

,

将我的反应更新到 17.0.2 后,我仍然收到此警告消息。有什么建议吗?谢谢

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...