有啥好的方法改善WebView中列表的滑动效果
0. 但凡优化,先分析原因再动手,profiler is your friend用 Chrome 开发者工具或移动设备对应的 Remote debugger 先分析一下在滚动过程中到底哪些因素影响了性能。Chrome 开发工具中的 Timeline、Profiler,以及与 Rendering 有关的这些选项都超级有用: 【有啥好的方法改善WebView中列表的滑动效果】 
1. 了解现代浏览器对滚动区域的处理以 Chrome 为例,有滚动条的元素,会分成三个 layer:container 层、content 层、滚动条层。并且尽量让 GPU 参与进来层合成。Android 4.4 以下的版本 Webview 是老旧的 webkit 核心,对GPU 加速的支持度有限。Android 4.4 起换成了 Chromium 。那么你可以检查一下:分层是否正确,是否有太多分层,能否降低一些效果减少一些分层会卡顿的 Webview 是不是打开了 GPU accelerated composition2. 试下 iScroller
利用以上原理, iScroller 可以在老旧的浏览器上尝试优化,做法就是把滚动元素分为 container 层和 content 层,用以下 css 属性代替 native scrollingtransform: translateY(offset) translateZ(0)3. 其他应当注意的地方
不要在 scroll 事件上做太多事情在老旧的浏览器上, on screen image 的加载过程会造成卡顿,考虑改成 off screen image如果列表很大的话,考虑使用对象池(object pool / infinite scrolling)减少内存消耗4. 考虑把 Webview 核心换成 Chromium
如果你是在写 hybrid app,可以考虑集成 The Crosswalk Project ,让 Android 4.0 及以上的系统版本都享受到一致性、性能提升和更好的调试功能,但坏处就是项目会变大。
5. 如果这都满足不了你的话。。
Flipboard 的死宅们最近搞了个 Canvas-react ,用 canvas 代替传统的 DOM 来获取更高的性能: 60fps on the mobile web
参考:
http://www.html5rocks.com/en/tutorials/speed/layers/http://www.html5rocks.com/en/tutorials/speed/scrolling/https://www.chromium.org/developers/design-documents/gpu-accelerated-compositing-in-chromehttps://www.chromium.org/developers/design-documents/chromium-graphics/how-to-get-gpu-rasterizationhttp://engineering.flipboard.com/2015/02/mobile-web/
推荐阅读
- 长寿花怎么养护?掌握两大方法,乖乖花开“爆盆”,花香四溢!
- 为啥知乎上普便有一种【我在北上广深打工,所以拥有更好的视野】这样的错觉
- 趣头条|你我皆风华正茂,拥有广汽三菱奕歌的日子是美好的
- 有啥方法,网站,项目可以自己练习计算广告学
- 直播会成为品牌传播的另一个途径么有哪些可行的方法感觉有戏又没头绪好捉急。
- 言论自由|
- |邳州市岔河镇探索创新工作方法以“三个凝聚”助力统战工作提质增效
- 100W——150W有啥好的车
- 肝硬化|肝不好的人,身体有什么异常,暗示肝硬化来了?肝病怕拖,早检查
- 小孩|手术矫正要20万,有什么可以不动手术的方法?小孩有点地包天
