TL,DR;
全文可以归纳为以下问题:
全文
我有一个SPA CMS项目,其中的动态数据来自许多不同的来源。结果,要显示包含大量数据的表,页面需要生成大量的HTTP调用。
我尝试过的是使所有HTTP调用异步,一旦HTTP调用之一返回,表中的相应单元格就会相应地更新。而且我敢肯定,由于错误或粗心大意,没有HTTP调用以同步方式进行。
但是,仍然存在性能问题。当大量的HTTP调用在较短的时间范围内解决时,页面呈现就成为问题。一旦用户尝试执行互动,例如在两个用户输入事件之间进行鼠标滚动等操作时,有很多已解决的HTTP调用事件。尽管每个重新渲染的回调都不会花费很多时间,但是如果将所有小的时间片相加,它们仍然会导致性能问题。
我目前正在考虑两种可能的解决方案:
GraphQL解决方案需要大量的返工,这是我要避免的工作。但是我对WebWorker经验不足,会按预期工作吗?还有其他解决方案吗?
顺便说一句,对于渲染表,我正在使用Element UI表组件。浏览器兼容性对我来说不是问题。
最佳答案
尽量减少离散HTTP调用的数量是个好主意,因此从中长期来看,#1或类似名称是您应该考虑的事情。
关于Re#2,但是,您可能不需要使用网络 worker 。处理补全可能不是瓶颈,它很可能是所有小的DOM操作导致大量重排等。因此,如果对它们进行批处理并立即应用一批,则应该能够显着减少这些更改的影响,而不必使用Web Worker来进行。