如何加载样条场景而不阻塞反应中的主线程

问题描述 投票:0回答:2

我使用React构建了一个登陆页面,然后决定在主页中添加一个样条场景,它工作得很好,除了在加载时,当时整个页面冻结,当我单击任何按钮时它不起作用直到场景完全加载,然后一切正常。

首先,我认为问题出在React上,所以我用vanilla js做了另一个项目并在那里尝试了它,但这不起作用,我尝试使用React延迟加载,但这不起作用,我尝试了promises和web工人,我尝试将场景放入另一个 iframe 中,看看它是否有效,但没有,最后我尝试放置一个带有简单 css 动画的加载页面,但问题是场景也冻结了 css,因此加载页面看起来卡住了。

我只想让用户在进入登陆页面后获得流畅的加载体验

这是我的样条线场景组件代码:

从“@splinetool/react-spline”导入样条线;

导出 const HomeScene = () => { 返回 ( ); }

reactjs three.js 3d spline
2个回答
0
投票

据我所知,样条场景存在一些重大的优化问题。我还没有尝试用 React 实现 Spline,但是,我确实尝试利用 Webflow 中的 Spline 场景,将 Webflow 与 Spline 结合起来,制作非常基本且简单的登陆页面。

这给我在桌面上的 CPU 和电源使用带来了巨大的提升。即使使用简单的样条动画,Chrome 也会冻结,正如您提到的,用户体验很糟糕。

从我在网上看到的情况来看,Spline 中应该完成了一些主要的场景优化,但我不熟悉如何处理它以及要更改哪些内容。即使在一些教程视频中,我也看到他们的电脑在 Webflow 中导入场景时出现滞后(Webflow 有名为“Spline Scene”的官方组件来实现此功能)。

你的 React 代码在这里不应该成为问题。


-1
投票

使用延迟加载可能有助于解决您的问题。确保为样条线场景实现延迟加载。这样,场景只会在需要时才加载,从而减少了初始加载期间页面冻结的可能性。

© www.soinside.com 2019 - 2024. All rights reserved.