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次。正確的方式可以防止對腰部產生...
對於始動困難有什麼好的改善方法嗎?
海瓜子 看到過乙個一分鐘法則,大致是說你想到的事如果一分鐘的時間就可以完成,那麼不要等現在就完成。同理大的計畫的話可以拆分成小事,比如想去跑步,那就從離開床開始,離開床放下手機一分鐘就是現在! 燕綏 這個就是執行力的問題了,或者是選擇困難症 不知道有沒有理解錯 執行力的問題的話就可能是因為拖延症,以...