我目前在我的网站上有一个搜索框,用于搜索图像并以列表元素的形式返回结果,如下所示:
<ul>
<li rel="1"><img src="imgurl" /></li>
<li rel="2"><img src="imgurl" /></li>
<li rel="3"><img src="imgurl" /></li>
<li rel="4"><img src="imgurl" /></li>
</ul>
然后每个图像都有一个与之关联的点击事件,它只是将叠加层添加到所点击图像的父 li 中。
有时我的搜索结果将包含 300 多个结果,这在桌面上不是什么大问题,但在移动设备上会导致巨大的延迟,例如,当有人单击图像以添加叠加层时,可能需要 4-5 秒出现叠加。
现在我想到了一种解决方法,如下所示:
将所有 li 元素添加到数组中(作为字符串而不是 DOM 元素)
销毁原有的 li 元素。
计算屏幕大小以及一次可以显示多少张图片
添加用于滚动列表的滑块 ui 元素
基于滑块的位置以及我们可以在屏幕上放置多少元素,从数组中提取我们实际可以看到的元素并销毁其余元素
循环返回的数组结果并将所有结果添加到单个字符串中。然后将包含我们可以看到的所有结果的字符串附加到 UL 中。
我的问题是这真的会给我带来性能提升吗?我相信我最初的问题是dom中的元素太多。
这也是常见的事情吗?或者有更好的方法吗?
谢谢