使用CDN和AJAX加速WordPress中jQuery的加載
確定要放在Head部分 ?
事實上最好的情況是,js文件都不要在<head>部分進行加載,否則會影響到head部分的載入速度,直接導(dǎo)致網(wǎng)站的內(nèi)容(body)載入延遲。如果你確定你不需要在head部分載入jQuery,請將載入代碼移動到</body>前,準確的說是第一個會用到j(luò)Query函數(shù)的javascript代碼前。
當然,如果你需要head部分加載jquery,也請確保所有的js文件,包括jquery,都要放在調(diào)用CSS文件的代碼之后,來實現(xiàn)同步下載。這也是Google官方給出的建議。例如下面的加載不推薦:
<script src=jquery.js></script> <link href="style.css" .../>
而是應(yīng)該使用:
<link href="style.css" .../> <script src=jquery.js></script>
確定不要異步加載 ?
異步加載不會阻塞網(wǎng)頁的載入,而非異步加載則會在加載本身js之前短暫阻塞瀏覽器的網(wǎng)頁載入。這可能影響瀏覽體驗。
如果你的加載代碼是
<script type="text/javascript" src="jquery.js"></script>
那么你需要知道這可不是異步加載的方式,這是一種同步加載。如果你不需要在頁面加載后及時的調(diào)用jquery函數(shù),你完全可以用異步加載的方式,使得網(wǎng)頁onload之前才加載jquery,大大加快載入速度。這樣的代碼看起來像是Google Analytics的代碼。
(function(doc){ var j =doc.createElement("script"); j.type = "text/javascript"; j.async = true; j.src = "jquery.js"; var s = doc.getElementsByTagName("script")[0]; s.parentNode.insertBefore(j, s); })(document);
但是經(jīng)我觀察,大多數(shù)的時候我們需要同步加載,尤其是你還需要引入jQuery插件的時候。
使用哪個版本的jQuery ?
wordpress總是自帶最新的jQuery庫,每一個版本的使用方法總有細微的不同。越新的jQuery版本,性能提升也越高。不過,某些jquery插件可能不太兼容太新的插件,而它自己也沒有推出更新。也許有些你會使用的方法函數(shù),到了新版本發(fā)現(xiàn)已經(jīng)被改變,曾經(jīng)能工作的現(xiàn)在已經(jīng)不能了。對于這種情況,應(yīng)該遵從這樣的原則,那就是在確保兼容性的同時,做到使用盡可能新的jQuery庫。
例如你以前使用1.6.2版本的jquery,到了現(xiàn)在你發(fā)現(xiàn)2.X某些函數(shù)有改變,你又不愿意去變更代碼,就最好逐個調(diào)試,例如你發(fā)現(xiàn)1.7.2的兼容性就不錯。這個時候就可以拋棄1.6.2,可以用1.7.2版本的jQuery去替換掉2.X的新版。
使用哪個jQuery CDN庫 ?
jQuery實在是太大了!如果你的網(wǎng)站速度不是飛快,jquery肯定會影響到你的頁面加載速度。好在百度、新浪、微軟、Google等公司都推出了公共js庫,方便網(wǎng)站主調(diào)用來縮短下載時間,而它們本身有著超快的CDN服務(wù)器,節(jié)約了下載時間。
目前用的比較普遍的是Google提供的jquery庫:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
當然,百度在國內(nèi)的訪問速度是不可小視的:
<script type="text/javascript" src="http://libs.baidu.com/jquery/2.0.3/jquery.min.js"></script>
新浪的CDN同樣速度飛快:
<script type="text/javascript" src="http://lib.sinaapp.com/js/jquery/1.7.2/jquery.min.js"></script>
不跟風(fēng),你也可以選擇微軟的jquery CDN:
<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-2.0.3.min.js"></script>
你可以直接更改上面出現(xiàn)的版本號來選擇不同的版本。哪一個最快呢?如何選擇呢?
如果你的網(wǎng)站訪客來自海外的不少,建議選用Google,如果主要訪客是國內(nèi),選擇百度也沒問題。但是百度在海外的訪問速度可不及Google。
而且因為大多數(shù)的網(wǎng)站選擇了Google的CDN,由于緩存原理,來訪你的網(wǎng)站,可能google的CDN更快。
如果你不是確定自己的網(wǎng)站下載速度飛快,我建議最好選用上述的公開CDN來節(jié)省加載時間,同時也節(jié)省了流量。
真的要用jQuery嗎?
如果你的網(wǎng)站只是需要用帶jquery一個很小的函數(shù),為什么要下載這么大的文件呢?為什么不可以jquery-free?
例如你可以考慮zepto.js,其設(shè)計目標“以最小的體積,做到最大兼容jQuery的API”。它在gzip壓縮后僅僅為10KB。
另外,jQuery有著模塊設(shè)計,可以選擇自己只是需要的模塊。你可以參考jquery builder。
加載jQuery的正確方式
說了那么多,加載jquery的正確方式是什么?
首先選好哪個CDN,或者你自己的網(wǎng)站托管js文件,并確定調(diào)用的位置在頭部還是body,下面以Google的jquery庫為例,普通的加載方式是
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
然而Google的服務(wù)在國內(nèi)間歇性中斷,所以我可以照顧一下國內(nèi)訪客,這么寫:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script> <script type="text/javascript"> window.jQuery || document.write(unescape('%3Cscript%20type%3D%22text/javascript%22%20src%3D%22//libs.baidu.com/jquery/2.0.3/jquery.min.js%22%3E%3C/script%3E')); </script>
這樣子即可實現(xiàn)如果jQuery未能加載成功,則自動加載百度的jquery庫,做到萬無一失了。
- 基于jquery的finkyUI插件與Ajax實現(xiàn)頁面數(shù)據(jù)加載功能
- jQuery 瀑布流 浮動布局(一)(延遲AJAX加載圖片)
- jQuery 瀑布流 絕對定位布局(二)(延遲AJAX加載圖片)
- jquery Ajax 實現(xiàn)加載數(shù)據(jù)前動畫效果的示例代碼
- jQuery學(xué)習(xí)筆記之 Ajax操作篇(一) - 數(shù)據(jù)加載
- jQuery+PHP+ajax實現(xiàn)微博加載更多內(nèi)容列表功能
- jquery通過ajax加載一段文本內(nèi)容的方法
- jQuery+AJAX實現(xiàn)無刷新下拉加載更多
- jQuery Ajax頁面局部加載方法匯總
相關(guān)文章
基于jQuery實現(xiàn)的Ajax 驗證用戶名唯一性實例代碼
本文分為jsp代碼和后臺代碼給大家介紹了基于jQuery實現(xiàn)的Ajax 驗證用戶名唯一性,非常不錯,具有參考借鑒價值,需要的的朋友參考下吧2017-06-06jQuery實現(xiàn)立體式數(shù)字動態(tài)增加(animate方法)
本文主要分享了基于jQuery實現(xiàn)立體式數(shù)字動態(tài)增加(animate方法)的實例代碼。有很好的參考價值,需要的朋友一起來看下吧2016-12-12淺談jquery fullpage 插件增加頭部和版權(quán)的方法
下面小編就為大家分享一篇淺談jquery fullpage 插件增加頭部和版權(quán)的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看2018-03-03jQuery實現(xiàn)頁面評論欄中訪客信息自動填寫功能的方法
訪客信息自動填寫即是利用cookie來記錄訪客第一次評論時填寫的信息,這樣以后再評論時實現(xiàn)一個自動填寫,這里我們以WordPress為例展示jQuery實現(xiàn)頁面評論欄中訪客信息自動填寫功能的方法:2016-05-05基于jquery的下拉框改變動態(tài)添加和刪除表格實現(xiàn)代碼
以前很少用jquery,現(xiàn)在工作需要,用上了,感覺真的很方便!不用再像以前那樣寫那么多多余的Js了!看來得在jquery上花點功夫呢!2011-03-03jQuery常用數(shù)據(jù)處理方法小結(jié)
這篇文章主要介紹了jQuery常用數(shù)據(jù)處理方法,實例總結(jié)了trim、param、isArray、isFunction、each等jQuery常用的數(shù)據(jù)處理方法,具有一定參考借鑒價值,需要的朋友可以參考下2015-02-02