Angular 和浏览器在加载数据方面的限制

iPhoneJava开发

我想知道 angular 框架可以处理的最大数据是多少。说,我正在使用 angular 和一些图表框架(如 chartjs)显示图表。我想知道浏览器可以正确显示多少数据,速度很慢,或者直到崩溃。

丹尼尔

你的问题没有简单的答案,但我会尽量把它弄平并给出一个简单的答案,或者至少要考虑一些简单的事情......

Angular(在运行时),像许多其他框架一样只是 JavaScript,所以让我们将问题简化为“关于加载数据JavaScript和浏览器的限制”,

JavaScript 没有它可以处理的内存或存储上限,我见过需要 15GB 以上 RAM 的 JavaScript 应用程序,它们也表现得很好。因此,假设数据大小本身不是问题(当然,除非您的应用程序实现不佳、内存泄漏或效率不高)。

在我看来,主要的挑战是显示操作信息,而不会造成不必要的延迟或反应迟钝。

显示信息 -假设您有一个列表(或表格),其中包含 1,000,000 个可能的礼物,然后您希望显示这些礼物供用户选择。将列表项一个一个地添加到文档中很诱人,但每次添加后都需要浏览器重新绘制(导致延迟或完全无响应直到完成),另一种方法是将元素添加到某个 DOM 元素(用 N 表示)仍然保存在内存中,然后将与列表项对应的所有元素添加到元素 N(仍然,只是内存操作),最后将 N 添加到包含整个列表的文档 - 这将是显示大量的更好的解决方案数据的。

操纵信息——显示确实是不够的。您想移动、拖动、排序和过滤显示的数据。如前所述,直接从 DOM 中删除许多元素是一个坏主意。您应该将容器从文档的 DOM 中移除到内存中,操作其中的数据,然后将容器直接添加回文档。Angular 为你做了这种魔法。(我记得,切换许多元素的 'display:none\block' css 属性具有类似的阻塞效果)。

一个好的做法是实现一个应用程序/页面,只显示人类可以一目了然处理的数据量。其余部分应在应用程序数据层、内存中考虑,并应根据适当的需要或请求加载以显示。

总而言之,只要您提供一种有效过滤显示信息的机制,您就可以处理大量数据。

我希望它有帮助...

进一步阅读:将元素添加到 DOM 的慢速和快速方法

一个问题强调JS使用的内存限制不足

CSS 显示属性性能

关于 DOM 缓慢的原因的一个很好的讨论

关于正确使用 HTML5 - 旧但仍然正确

一旦了解了 DOM 创建过程 - 在不影响性能/用户体验的情况下显示数据就容易多了

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Angular Router在浏览器刷新时未重新加载

来自分类Dev

Angular页面未在任何浏览器中加载

来自分类Dev

Angular html5模式和HAL浏览器

来自分类Dev

Angular 9,KeyCloak,ServiceWorker和Edge浏览器

来自分类Dev

如何使用浏览器的Confirm()和Angular模板语句?

来自分类Dev

Angular 2 开发和浏览器缓存

来自分类Dev

Angular 8延迟加载。有关以下方面的问题:进口,进口组件和提供者

来自分类Dev

WebView和浏览器在HTML / JavaScript解析方面的差异

来自分类Dev

浏览器与angular.js和angular-ui引导程序的兼容性

来自分类Dev

浏览器与angular.js和angular-ui引导程序的兼容性

来自分类常见问题

如何使用Angular检测浏览器?

来自分类Dev

Angular SPA的浏览器同步

来自分类Dev

浏览器对Angular材质的支持

来自分类Dev

获取浏览器时间格式Angular

来自分类Dev

获取浏览器时间格式Angular

来自分类Dev

Angular指令使浏览器崩溃

来自分类Dev

Angular SPA的浏览器同步

来自分类Dev

Angular 应用程序无法加载到 Android 浏览器上

来自分类Dev

在浏览器中加载angular.io网站时找不到vendor.*.js

来自分类Dev

Angular CLI 为打字稿生成源映射,但浏览器仅加载样式源映射

来自分类Dev

Angular 2新路由器:浏览器的后退和前进按钮无法正常工作

来自分类Dev

Angular 2新路由器:浏览器的后退和前进按钮无法正常工作

来自分类Dev

限制等待Web浏览器加载

来自分类Dev

如何使用Angular加快浏览器渲染大量数据的速度?

来自分类Dev

Angular Marked和Inappbrowser在系统浏览器中打开所有链接

来自分类Dev

Waterlock,Sails和Angular JWT令牌从浏览器获得403

来自分类Dev

在几个不同的浏览器选项卡中的Angular和TypeScript / javascript单例

来自分类Dev

使用Angular和Deno的浏览器中的CSS MIME不匹配

来自分类Dev

Angular2和电子访问浏览器Windwow对象

Related 相关文章

  1. 1

    Angular Router在浏览器刷新时未重新加载

  2. 2

    Angular页面未在任何浏览器中加载

  3. 3

    Angular html5模式和HAL浏览器

  4. 4

    Angular 9,KeyCloak,ServiceWorker和Edge浏览器

  5. 5

    如何使用浏览器的Confirm()和Angular模板语句?

  6. 6

    Angular 2 开发和浏览器缓存

  7. 7

    Angular 8延迟加载。有关以下方面的问题:进口,进口组件和提供者

  8. 8

    WebView和浏览器在HTML / JavaScript解析方面的差异

  9. 9

    浏览器与angular.js和angular-ui引导程序的兼容性

  10. 10

    浏览器与angular.js和angular-ui引导程序的兼容性

  11. 11

    如何使用Angular检测浏览器?

  12. 12

    Angular SPA的浏览器同步

  13. 13

    浏览器对Angular材质的支持

  14. 14

    获取浏览器时间格式Angular

  15. 15

    获取浏览器时间格式Angular

  16. 16

    Angular指令使浏览器崩溃

  17. 17

    Angular SPA的浏览器同步

  18. 18

    Angular 应用程序无法加载到 Android 浏览器上

  19. 19

    在浏览器中加载angular.io网站时找不到vendor.*.js

  20. 20

    Angular CLI 为打字稿生成源映射,但浏览器仅加载样式源映射

  21. 21

    Angular 2新路由器:浏览器的后退和前进按钮无法正常工作

  22. 22

    Angular 2新路由器:浏览器的后退和前进按钮无法正常工作

  23. 23

    限制等待Web浏览器加载

  24. 24

    如何使用Angular加快浏览器渲染大量数据的速度?

  25. 25

    Angular Marked和Inappbrowser在系统浏览器中打开所有链接

  26. 26

    Waterlock,Sails和Angular JWT令牌从浏览器获得403

  27. 27

    在几个不同的浏览器选项卡中的Angular和TypeScript / javascript单例

  28. 28

    使用Angular和Deno的浏览器中的CSS MIME不匹配

  29. 29

    Angular2和电子访问浏览器Windwow对象

热门标签

归档