有什麼好的方法改善WebView中列表的滑動效果?

時間 2021-06-01 06:36:10

1樓:魯小夫

0. 但凡優化,先分析原因再動手,profiler is your friend

用 Chrome 開發者工具或移動裝置對應的 Remote debugger 先分析一下在滾動過程中到底哪些因素影響了效能。

Chrome 開發工具中的 Timeline、Profiler,以及與 Rendering 有關的這些選項都超級有用:

1. 了解現代瀏覽器對滾動區域的處理

以 Chrome 為例,有滾動條的元素,會分成三個 layer:container 層、content 層、滾動條層。並且盡量讓 GPU 參與進來層合成。

Android 4.4 以下的版本 Webview 是老舊的 webkit 核心,對GPU 加速的支援度有限。Android 4.4 起換成了 Chromium 。

那麼你可以檢查一下:

分層是否正確,是否有太多分層,能否降低一些效果減少一些分層

會卡頓的 Webview 是不是開啟了 GPU accelerated composition

2. 試下 iScroller

利用以上原理, iScroller 可以在老舊的瀏覽器上嘗試優化,做法就是把滾動元素分為 container 層和 content 層,用以下 css 屬性代替 native scrolling

transform

:translateY

(offset

)translateZ(0

)3. 其他應當注意的地方

不要在 scroll 事件上做太多事情

在老舊的瀏覽器上, on screen image 的載入過程會造成卡頓,考慮改成 off screen image

如果列表很大的話,考慮使用物件池(object pool / infinite scrolling)減少記憶體消耗

4. 考慮把 Webview 核心換成 Chromium

5. 如果這都滿足不了你的話。。

Flipboard 的死宅們最近搞了個 Canvas-react ,用 canvas 代替傳統的 DOM 來獲取更高的效能:60fps on the mobile web

參考:

有什麼改善脫髮的好方法?

首先要找找自己掉頭髮的原因,之後才好對症下藥防脫長頭髮。我之前有段時間也是掉頭髮很厲害,我那會兒是天天熬夜,經常凌晨了還不睡覺,抱著手機玩,剛開始還沒啥,就頭皮出油比之前頻繁了,那會兒每天都得洗頭,一天不洗,頭髮就油的貼頭皮。慢慢的還開始掉頭髮了,每天起床第.一件事兒就是趴床上撿頭髮,家裡哪哪都是我...

腰疼有什麼好的健身方法改善嗎?

lok301 仰臥抬肩 仰臥抬肩可以加強背腹部肌肉。躺在瑜伽墊,雙腿彎曲,雙腳平踩在地面上。雙臂交叉於胸前或者雙手置於頸後,然後收縮腹部肌肉,將肩膀抬離地面並呼氣。注意 這個過程中要使用上背部 腹部肌肉。不要使用肘部和手臂的力量。抬高後堅持1秒鐘緩慢放下,重複8 12次。正確的方式可以防止對腰部產生...

對於始動困難有什麼好的改善方法嗎?

海瓜子 看到過乙個一分鐘法則,大致是說你想到的事如果一分鐘的時間就可以完成,那麼不要等現在就完成。同理大的計畫的話可以拆分成小事,比如想去跑步,那就從離開床開始,離開床放下手機一分鐘就是現在! 燕綏 這個就是執行力的問題了,或者是選擇困難症 不知道有沒有理解錯 執行力的問題的話就可能是因為拖延症,以...