溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

jquery引入外部CDN 加載失敗則引入本地jq庫

發(fā)布時間:2020-09-14 19:43:38 來源:腳本之家 閱讀:119 作者:mdxy-dxy 欄目:web開發(fā)

由于第三方cdn庫的盛行,很多朋友會選擇使用第三方的類庫,從學(xué)習(xí)上來說不建議大家都使用類庫,這樣我們失去了很多學(xué)習(xí)的機(jī)會,但使用上來說解決了很多代碼兼容問題,這里都不多說了。

使用CDN加載jQuery類庫一是可以省一點(diǎn)帶寬,二是可以給用戶帶來更快的頁面加載體驗(yàn)。

因?yàn)閭€人網(wǎng)站規(guī)模與cdn的帶寬問題,現(xiàn)在cdn費(fèi)用雖然下來了,但也有不給力的時候,很多朋友都會選擇使用第三方的jquery庫,個人推薦幾個國內(nèi)的 百度、新浪、bootcdn

下面的兩段代碼的作用 如果cdn的jquery沒有加載進(jìn)來,我們可以使用本地的類庫。

jquery下載地址

第一種:推薦用法

<script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
<script type="text/javascript">
 if (typeof jQuery == 'undefined') {
 document.write(unescape("%3Cscript src='/skin/mobile/js/jquery.min.js' type='text/javascript'%3E%3C/script%3E"));
 }
</script>

上面,我們引用了百度 CDN的jQuery庫,接著我們在腳本代碼后添加了一個if語句來判斷jQuery庫是否加載成功,如果沒有加載成功我們動態(tài)加載本地jQuery庫。

其中,我們在document.write方法中直接使用了URL編碼,把“<”編碼為“%3C”,接著我們再使用unescape()方法把字符串還原過來。

我們通過unescape()方法把字符串轉(zhuǎn)換回來,我們可以看到輸出是一個正常的腳本引用代碼。

現(xiàn)在,我們有一個疑問就是“為什么不使用常規(guī)字符,而是要使用字符編碼呢?”,其實(shí)這是有原因的,這意味著我們代碼將可以在XML、XHTML或HTML中正常運(yùn)行,而無需把代碼包含在CDATA中(具體請參考這里)。

第二種:

<script src="http://lib.sinaapp.com/js/jquery11/1.8/jquery.min.js"></script>
<script>window.jQuery || document.write(unescape("%3Cscript src='/skin/mobile/js/jquery.min.js' type='text/javascript'%3E%3C/script%3E"))</script>

上面這種跟第一種原理是一樣的,就是通過 || 運(yùn)算符

表達(dá)式a || 表達(dá)式b : 計(jì)算表達(dá)式a(也可以是函數(shù))的運(yùn)算結(jié)果,

如果為 Fasle, 執(zhí)行表達(dá)式b(或函數(shù)),并返回b的結(jié)果;

如果為 True,返回a的結(jié)果;

意思也是如果window.jQuery為false則加載本地的jquery庫。

requireJs 引用cdn失敗后加載本地js

問題:頁面中引用js和css過多會導(dǎo)致頁面加載變慢

                   引用cdn中的js和css會比直接在本地上傳時間短

解決辦法:我本地項(xiàng)目用到requireJs加載頁面中的js和css,變?yōu)閏dn加載時需要改動如下

1.jquery: ["https://cdn.bootcssddd.com/jquery/1.11.1/jquery.min","static/lib/jquery/jquery-1.9.1.min"],
2.增加build.js 代碼如下

({
  baseUrl: "/js",
  paths: {
    "jquery": "empty:"
    
  },
  dir: "/js-build",
  optimize: "uglify",
  optimizeCss: "standard.keepLines",
  mainConfigFile: "config.js",//config.js為1中引用的文件
  removeCombined: true,
})

這篇文章就介紹到這了,后續(xù)億速云小編會為大家分享更多的資料。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI