请问:移动端页面过长引起的滑动卡顿现象,都有何种解决方案或思路?
如题:移动端页面过长,DOM过多,导致滑动页面时会出现卡顿现象,混动不流畅,体验比较差,请问各位有无解决方案或者思路?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
如题:移动端页面过长,DOM过多,导致滑动页面时会出现卡顿现象,混动不流畅,体验比较差,请问各位有无解决方案或者思路?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(5)
建议chrome profile分析一下,依据经验来看,如果是单纯的长页面应该不至于在滚动的时候出现卡顿,看一下是否页面内元素有未处理的touchmove事件冒泡给了documentbody,导致页面滑动时频繁触发事件;
还有一种可能是移动端页面上大量应用一些伪元素来模拟原生效果,比如0.5px的线条,如果布局不合理很有可能在页面滚动时造成大面积paint,gpu ram瞬间飙涨,fps极速下降。
超长页面节约内存的办法,在滚动的时候,将不在当前屏幕内的节点直接回收掉,可以做上中下三屏缓存(具体可以参考一下淘宝m站点的做法,首次只加载10个items,当离开屏幕区域的items超过30个时(印象中大概是如此的),将离开的这些items直接戳上一个回收标记,只要戳上这个标记的item就可以被安全地回收掉。)
首先可以精简dom的层级,一个img能定位的就别外面再套一层div,一个a能做到的就别在里面再写p,这样做了一般在ios就不会很卡了
如果还是卡的话可以试试滚动到下面的时候js去hide掉顶层的数据,滚动回去的时候再show出来
我觉得页面过长不是主因,题主八成用了视差滚动之类的东西,导致页面滚动的时候总是回流。试着把特效都关掉再看看卡不卡
常见思路:html5的性能跟不上的时候就用原生控件。
<img src="http://p3.pstatp.com/large/19...