我现在有,搜索图像,并返回结果作为像这样一个列表元素在我的网站的搜索框:优化了巨大的无序列表使用Javascript
然后,每个图像具有点击事件相关联它只是添加一个叠加到单击图像的父级李。
有时我的搜索结果将包含300多个结果,这些结果在桌面上并不是什么大问题,但在移动设备上会造成巨大的延迟,当有人点击图片添加叠加层时,叠加层出现前可能需要4-5秒。
现在我想到了一个办法来解决这个问题是下面的:
添加所有li元素到数组(字符串不是一个DOM元素)
破坏原有的li元素。
计算屏幕的大小和多少图像可以在同一时间
添加滑块UI元素被示出为用于滚动好像列表
基于对位置滑块和多少元素,我们可以安装到 从数组中的元素,我们可以清楚地看到屏幕提取物和销毁,其余
循环虽然返回数组结果和所有结果添加到单个字符串。 然后将包含我们可以看到的所有结果的字符串追加到UL中。
我的问题是这会不会让我的表现增加?正如我相信我的初始问题是在太多的元素。
也是这是一个常见的事情要做,或者是否有更好的方法来做到这一点?
感谢
从哪里来的300多个元素?如果来自数据库,则修改页面以在开始时显示子集,例如30。然后在需要的时候使用AJAX获取下一个30,例如通过按钮点击或向下滚动。无限滚动。 –
@RoryMcCrossan他们来自数据库,但我需要尝试尽可能多的工作到浏览器上。人们可能会翻动很多页面,我宁愿没有必要每隔几秒钟就做一次ajax调用,因为人们从列表的顶部跳到底部。 – james
您可以尝试仅将click事件绑定到最外层的'ul'元素。 (见:http://api.jquery.com/on/,'selector'是'img')。这只会绑定一个事件,并可以提高性能。 – Yoshi