display:none 和 remove dom 哪个更影响性能

发布于 2022-09-01 06:32:33 字数 77 浏览 24 评论 0

比如:

在向上滚动屏幕的时候,将可视界面下的item节点remove掉或者display:none, 用哪种方式更合适?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

时光病人 2022-09-08 06:32:33

两种方法其实都不好
无论是remove 还是display:none 都会导致界面高度变化,尤其是想上滚动的时候,界面缩短的赶脚实在欠揍。

在主要影响性能方面,
无论是PC端还是手机端,100个dom跟200个dom性能没有多大差别的。
但是在手机端,100个图片跟200个图片绝对有性能差别。

避免太多的图片即可或者
下面比较复杂的方案类似于http://ionicframework.com/docs/api/directive/collectionRepeat/

  1. 如果界面可以放10个items
  2. 用户向上滑动屏幕的时候,顶部第一个item 删除,底部插入新item
  3. 用户向上滑动屏幕的时候,底部第一个item 删除,顶部部插入原来的item
  4. 不要用原生的scrollbar了,自己编写一个scrollbar 给用户一个滑动条
飘逸的'云 2022-09-08 06:32:33

这个主要看你还会不会在加回来啊,不加回来可以remove掉,还要再显示 肯定是display的方式更好

妄想挽回 2022-09-08 06:32:33

题主是要做无限长度的列表?正好昨天也在看。
手机淘宝的搜索列表页就是个无限列表(其实也不是无限的。最多100页),手机淘宝的做法ul里面有若干个div,一个div中有若干个li,一个li就是一个item,当超出一定的可视范围时,移除掉div中的内容,同时给div设置固定高度。
Airbnb在2012年开源了一个js的无限列表库Infinity.js。和手机淘宝不同的就是不支持滚动到指定位置。

蓝海似她心 2022-09-08 06:32:33

这个涉及到重排和重绘的问题,这都是比较耗费性能的。当然可以根据需求来(取舍)优化一些。列举一些:

1.尽量在最末尾的位置改变元素。
2.dom不要嵌套太深
3.不要使用太多table

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文