KiwenLau同學(xué)在他的個人博客使用了Fundebug的JavaScript錯誤監(jiān)控插件,然后偶爾會收到jQuery is not defined這樣的錯誤報警:
他的博客使用了Staticfile cdn提供的的jQuery:
成都創(chuàng)新互聯(lián)公司專注于普洱網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供普洱營銷型網(wǎng)站建設(shè),普洱網(wǎng)站制作、普洱網(wǎng)頁設(shè)計、普洱網(wǎng)站官網(wǎng)定制、微信平臺小程序開發(fā)服務(wù),打造普洱網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供普洱網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
<script src="https://cdn.staticfile.org/jquery/3.1.1/jquery.min.js"></script>
由出錯的代碼塊可知,博客中的『返回頂部』的功能是使用了jQuery實現(xiàn),如果jQuery出錯,意味著該功能失效,那么讀者就不得不手動滑動到博客頂部,這樣用戶體驗是非常糟糕的。根據(jù)統(tǒng)計,3個月時間內(nèi),這個錯誤已經(jīng)累計出現(xiàn)了399次,已經(jīng)相當(dāng)嚴(yán)重了。
而根據(jù)最新統(tǒng)計數(shù)據(jù)顯示,jQuery依然是前端用得最多的JavaScript庫,因此一旦jQuery出錯,必定會影響很多功能,jQuery的重要性不言而喻。另一方面,不少Fundebug的用戶都收到過"jQuery is not defined"的錯誤報警,許多前端開發(fā)者應(yīng)該都遇到(也許只是你沒有發(fā)現(xiàn)),我們通過這篇博客幫助大家解決問題。
當(dāng)提供jQuery的CDN出問題導(dǎo)致jQuery加載失敗,或者由于網(wǎng)絡(luò)問題瀏覽器加載jQuery文件超時,會出現(xiàn)jQuery未定義的錯誤。
解決方案: 將jQuery文件掛載在自己的網(wǎng)站上作為備用,如果CDN加載jQuery失敗,則使用自己網(wǎng)站存托管的jQuery。這樣的話,大部分用戶依然可以通過CDN加快訪問速度,而一旦CDN出問題時也可以避免出錯。
<script src="https://cdn.staticfile.org/jquery/3.1.1/jquery.min.js"></script>
<script>
window.jQuery || document.write('<script src="http://kiwenlau.com/js/jquery.min.js"><\/script>'))
</script>
KiwenLau的博客讀者絕大部分來自國內(nèi),然而分析錯誤的IP地址后,他發(fā)現(xiàn)高達(dá)26.1%出錯用戶的來自國外。根據(jù)幸存者偏差,我們不能認(rèn)定國內(nèi)用戶出錯概率更高,而應(yīng)該認(rèn)定國外用戶出錯概率更高。那么這就不難理解了,國外用戶請求國內(nèi)CDN時速度太慢,導(dǎo)致jQuery出錯。
因此,他將jQuery掛載在http://kiwenlau.com/js/jquery.min.js作為備用,解決了問題。
依賴于jQuery的其它JavaScript腳本先于jQuery加載完成并執(zhí)行。這時jQuery尚未加載,因此依賴于jQuery的代碼調(diào)用jQuery的話就會出錯。
解決方案: 將jQuery庫放在依賴于jQuery的JavaScript腳本之前,并且將這些代碼放入document.ready來確保DOM加載完畢。
<script type="text/javascript" src="path/to/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
//依賴于jQuery的代碼
});
</script>
The State of Front-End Tooling 2016 - Results
幸存者偏差是什么意思?- 知乎
{% raw %}
<script src="/js/highcharts.js"></script>
{% endraw %}
Fundebug專注于JavaScript、微信小程序、微信小游戲、支付寶小程序、React Native、Node.js和Java實時BUG監(jiān)控。 自從2016年雙十一正式上線,F(xiàn)undebug累計處理了7億+錯誤事件,得到了Google、360、金山軟件、百姓網(wǎng)等眾多知名用戶的認(rèn)可。歡迎免費(fèi)試用!
轉(zhuǎn)載時請注明作者Fundebug以及本文地址:
https://blog.fundebug.com/2017/03/06/jquery-is-not-defined/
分享文章:聊聊"jQueryisnotdefined
URL標(biāo)題:http://jinyejixie.com/article6/possog.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、品牌網(wǎng)站設(shè)計、面包屑導(dǎo)航、定制網(wǎng)站、App設(shè)計、自適應(yīng)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)