【问题标题】:Web workers in angular 6Angular 6 中的网络工作者
【发布时间】:2019-02-01 09:14:46
【问题描述】:

我正在使用 Angular 6。我想在我的网格中加载 100 行,但是这 100 行包含大量数据,因此在我的 Angular 应用程序中加载这些数据时,它会挂起浏览器。

所以目前我使用远程分页更改为每页 20 行。

但我需要在我的应用程序中加载 100 行。所以我尝试实现 WebWorkers。但我没有找到任何例子。

谁能给我示例或步骤以 Angular 6 实现 WebWorkers

我也将反应式表单数组用于动态表单。在此,我在编辑表单上加载了 50 多个下拉字段,当时浏览也挂起。我也需要这个formarray的解决方案。

【问题讨论】:

  • 你可能在找一个虚拟滚动组件,你可以找到一个here
  • @Ploppy 我想要一些例子来实现 Angular 6 中的网络工作者
  • 没那么简单,所以我推荐你实现虚拟滚动策略。

标签: angular web-worker angular-forms formarray


【解决方案1】:

您可以找到一个有用的演示文稿,讨论在您的 Angular 应用程序中集成 Web Worker:

SlideShare :- Web workers in your Angular Application- Different Approaches

Github :- Sample Code from presentation for Web Worker in Angular 6

Article :- Running your Angular 6 application in Web Worker

希望这些链接有助于您了解在 Angular 应用中使用 Web Worker 的不同方法,并选择最适合您的项目和用例的方法。

【讨论】:

  • 谢谢@Suresh Patidar。我试图在我的应用程序中实现这个解决方案,但它是针对特定线程的。我如何为整个角度应用程序实现。我需要在网络工作者中运行整个应用程序。
  • 上面提到的文章链接仅讨论了这一点,即如何在 Web 工作线程中运行整个 Angular 应用程序。为此,您的应用程序不应在组件和服务代码中直接引用 DOM、Window 和 Document 对象,因为您无法从工作线程访问这些对象。
  • 我在表中每页呈现 100 行(这是一项要求),当时浏览器被挂起。有没有其他解决方案可以提高性能。
  • 渲染 100 行应该不是问题,除非您对接收到的数据进行任何 CPU 密集型处理。我建议首先对您的应用程序进行某种分析以定位问题。您可以使用 console.time 和 console.timeEnd API 来查看代码的哪一部分需要更多时间来处理。一旦找到罪魁祸首,您就可以使用上述方法之一将该逻辑移动到网络工作者中运行。
猜你喜欢
  • 2020-05-17
  • 1970-01-01
  • 2016-06-08
  • 1970-01-01
  • 2021-07-23
  • 1970-01-01
  • 2019-08-28
  • 2015-03-16
相关资源
最近更新 更多