我在 Web 应用程序中有一种情况,根据某些条件,我必须隐藏或显示大量 div 元素,数字范围从500到98000
.
我正在做的是我在所有 div 元素上应用一个公共类,然后迭代整个元素集以检查它们是否适合环境并因此显示或隐藏。
当数字在500到10000的范围内时,这个逻辑可以正常工作,但是在这个范围之上,它需要一些安静的时间来显示结果。
恐怕对于非常大的数字,这种逻辑可能会导致某些浏览器被挂起。
那么,在大多数浏览器中,处理上述情况的更好方法是什么?
我在 Web 应用程序中有一种情况,根据某些条件,我必须隐藏或显示大量 div 元素,数字范围从500到98000
.
我正在做的是我在所有 div 元素上应用一个公共类,然后迭代整个元素集以检查它们是否适合环境并因此显示或隐藏。
当数字在500到10000的范围内时,这个逻辑可以正常工作,但是在这个范围之上,它需要一些安静的时间来显示结果。
恐怕对于非常大的数字,这种逻辑可能会导致某些浏览器被挂起。
那么,在大多数浏览器中,处理上述情况的更好方法是什么?
正如 Blazermonger 所说,由于您显示/隐藏所有这些元素的方式,您的表现很差。尝试将它们添加到容器中并显示/隐藏容器。
另外,请记住,直接调用 show() 和 hide() 比调用 .css('display', '') 和 .css('display', 'none') 更昂贵。
最后,请检查jQuery 对象数组上的调用显示
如果您要显示大量数据,如果允许,最好使用分页UL LI
而不是DIV
分页,您可以将它们显示/隐藏为 -
$(.ulClass li).toggle();
我会从不同的角度看待你的问题。人类是非常复杂的自动机,它们本身具有物理属性,这些属性将它们限制在一定的信息消费率上。我们大脑中的神经元可以以一定的速度传递冲动,此外,我们的大脑在任何时候只能包含有限数量的信息,等等。
你试图向人类展示的元素数量远远超过了人类感知的极限。如果您尝试显示的任何 div 仅包含一个单词,那么它将产生 98000 / (6 * 24) = 680 页的打印文本。如果这是一些容易阅读的东西,比如通俗小说,一个受过训练的读者可以在大约一周内阅读这么多的文本,每天花一个小时左右,甚至可能更少。您没有理由一次显示这么多文本。拆分成多个页面,否则即使软件能处理那么多数据,用户也无法处理,你的光荣努力也会被忽视……