在IE8中渲染React

4
我有一个React webapp在IE8中出现问题。在最新版本的Chrome和FF中,性能很好。但是,客户端运行IE8,该应用程序在此浏览器中加载视图非常缓慢,正常情况下需要4秒钟的加载时间。 我使用IE8开发人员工具(在VirtualBox VM中运行的IE8)对应用程序进行了分析。 在生成的调用树中,两个代码区域平均每个需要2秒钟。 深入挖掘这些代码,我发现React渲染方法,如mountComponent、mountChildren和createContentMarkup。这些调用构成了一个长长的树形结构,其中连续的MountComponent调用占用了相对较少的时间(100-300毫秒)。
看起来,添加到视图中的复合组件需要很长时间才能添加到DOM中,这对于React来说令人惊讶。
有没有人遇到过同样的情况?我不确定该如何继续处理,除了拆解添加的复合组件并测试问题所在。
感谢任何建议。
2个回答

0
如果有人在看这篇文章,那么我得出的唯一答案就是简化你的组件。使用较少的嵌套组件,减少复杂性,只在需要时使用状态渲染内容,甚至用一个简单的按钮替换复杂的组件(嵌套列表),当点击按钮时显示嵌套列表(如果有意义的话)。 最重要的是,IE8似乎无法处理大量React更新/渲染/挂载代码。因此,简化您的UI设计,例如使用选项卡而不是在一个视图中显示所有信息,并减少组件的复杂性。

0

你也可以尝试服务器端渲染。如果你在服务器上渲染组件,用户加载时间会不那么明显。


是的,那是一个很好的观点。不幸的是,由于项目限制,在我的情况下这不是一个选项。 - Davet

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