解決mui錯誤:Unable to preventDefault inside passive event listener due to target being treated as passive.


問題描述:點擊返回按鈕時,每次在控制台都出現如下錯誤:

 mui.min.js:13 Unable to preventDefault inside passive event listener due to target being treated as passive.

解決辦法

定位到mui.min.js的報錯行,發現報錯的代碼是a.preventDefault(),遂在mui.min.js中將a.preventDefault()注釋掉,問題解決。

問題分析

preventDefault() 函數具體實現什么功能?注釋掉對具體功能有沒有影響呢?

preventDefault() 方法阻止元素發生默認的行為(例如,當點擊提交按鈕時阻止對表單的提交)。例如:可以利用event.preventDefault()阻止a標簽跳轉。

由於瀏覽器無法預先知道一個事件處理函數中會不會調用 preventDefault(),它需要等到事件處理函數執行完后,才能去執行默認行為,然而事件處理函數執行是要耗時的,這樣一來就會導致頁面卡頓,也就是說,當瀏覽器等待執行事件的默認行為時,大部分情況是白等了。

如果 Web 開發者能夠提前告訴瀏覽器:“我不調用 preventDefault 函數來阻止事件事件行為”,那么瀏覽器就能快速生成事件,從而提升頁面性能,Passive event listeners 的提出就解決了這樣的問題。

 

在我的項目中,通過注釋掉preventDefault()成功解決了控制台報錯的問題,暫時未發現影響其他功能。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM