14
我在iOS上滾動時遇到了性能問題。在touchstart
和touchend
上,Safari無效,然後重新計算樣式,這導致在滾動響應之前稍微延遲。 Safari的工具有一個「啓動器」列,但在我的測試中它是空白的。如何確定iOS Safari中導致「樣式失效」的原因?
我已經試過:
- 滾動元件上施加任何
will-change: transform;
或transform: translateZ(0);
。這對Chrome非常有幫助,但對iOS Safari沒有任何幫助。分析器仍然報告正在重新計算樣式。 - 去除有
position: fixed;
- 檢查的Javascript每一行的DOM的所有元素(這只是jQuery和在我的測試角的核心代碼)通過剖析報告,看看他們在Paul Irish's list of things that force layout/reflow
- 要重現在Android上,我可以使用Chrome的恆星開發工具,但沒有成功。該問題僅影響iOS Safari,而Safari Safari只能從桌面Safari進行調試。
如何確定是什麼導致我的樣式在iOS Safari中失效?
這是iOS中已知的「問題」,請參閱此處:https://developers.google.com/web/updates/2013/12/300ms-tap-delay-gone-away。使用Fastclick.js來幫助緩解,我認爲8之後更新版本的iOS刪除了這個點擊延遲「功能」。希望有所幫助! –
我不確定這是一樣的。對於我來說,滾動對於更簡單的DOM結構的頁面響應速度更快,這不是一個靜態延遲。我確定它與風格無效有關。 – adamdport
面對同樣的問題,唯一有效的方法是查看單個頁面上的每個動畫內容並嘗試禁用它並檢查它是否有幫助。在我的情況下,迴流是由來自離子的組件的「animated ='true'」參數引起的。 –