其次,查看出現延遲問題的業務頁面和不出現延遲的業務頁面對這一組件的調用區別。
通過對比,也沒有發現兩個組件有何不同。(故這一奧秘,有興趣的同學可以聯系我一起討論。。。。。我可以把源碼發給你)
經過多次的重現問題,明顯看到在pc的chrome,使用touch模式延遲偶爾消失,而使用mousewheel延遲又出現。故將問題定位到mousewheel事件 和其相近對應的 scroll事件中。
bug解決:
結合上訴原因並通過查看的幾個帖子討論,得出如下結論:
1.chrome瀏覽器的mousewheel事件是引起這一延遲的原因(mousewheel事件不是標准事件,不推薦大家使用),當然!代碼中我並沒有使用mousewheel事件,但是使用scroll事件就可能會引起mousewheel事件的沖突,而在我們特質的手機客戶端中的webview不幸的也命中了這一缺陷。
2.想要解決這個問題,可以嘗試監聽這一事件(如果瀏覽器沒有這一事件,也不會響應這一監聽,沒有沖突),並在事件觸發的時候,取消其所有默認行為:
故通過監聽其事件模型的 deltaY(鼠標垂直滾動量)當其有垂直位移的時候,觸發preventDefault,故代碼如下:
window.addEventListener(
"mousewheel"
, (e) => {
if
(e.deltaY === 1) {
e.preventDefault();
}
})
兼容性問題的本質:
webkit架構中,有一些模塊在瀏覽器中是普遍不共享的,有一些模塊在瀏覽器中是某些特性不共享的,而且可以通過不同的編譯配置改變它們的行為。所以,很多使用webkit的瀏覽器可能會表現出不同的行為。
以上所述是小編給大家介紹的解決Ajax的content-download時間過慢問題,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!ajax的content-download時間過慢問題的解決與思考