JQuery教學(xué)之性能優(yōu)化
jQuery是一款非常優(yōu)秀的javascript框架,當(dāng)我們使用到j(luò)Query后就再也不想回到j(luò)avascript時冗長的代碼,那么jQuery的優(yōu)化就擺在了我們的面前。那么我們優(yōu)化JQuery應(yīng)該從那些方面入手呢?
1、使用最新版本的jQuery
新版本相對于舊版本會做性能上的改進(jìn),還有就是添加新功能。
2、選擇器的使用
我們通常會使用id選擇器、class選擇器、元素選擇器、偽類選擇器和元素選擇器。在使用時我的建議是最好使用id選擇器,其次是class選擇器>元素選擇器>Element選擇器>偽類選擇器。
說到選擇器時,不可必選的要插上一句,在使用選擇器查最好是從具有id的父元素開始逐級向下查找。
3、不要過度的使用jQuery
記住一句話原生的是最快的。jQuery是write less,do more(寫的更少,做的更多)。
4、做好緩存
當(dāng)時要重復(fù)使用一個節(jié)點(diǎn)是可以使用一個變量存放,在使用時再調(diào)用。避免重復(fù)獲取節(jié)點(diǎn),降低效率。
var inputSelect = $("#head .head_right input");
inputSelect.find("a");
inputSelect.find("i");
5、使用鏈?zhǔn)讲僮?/P>
jQuery的一大亮點(diǎn),就是可以使用鏈?zhǔn)讲僮鳌?/P>
$("#content").find(".div").eq(2).html("Hello World");
6、事件委托
當(dāng)需要多個同級元素執(zhí)行一種類型的事件時,可以采用事件委托的方式。例:
<div id="content">
<div><div>
<div><div>
<div><div>
<div><div>
<div><div>
<div>
當(dāng)每個class="div"的div都具備一個click事件的時候我們可以采取事件委托,
$("#content").on("click","div",function(){
$(this).css("color","#ff5500");
});
7、正確處理循環(huán)
循環(huán)是一種較耗時的操作,如果可以使用選擇器直接選中元素,就不要使用循環(huán)去一個個的遍歷元素。
Javascript的原生方法for和while,要比jQuery的each()快。所以應(yīng)該優(yōu)先使用原生的方法。
8、減少JQuery對象的生成
生成Query對象就會生成對應(yīng)的屬性和方法,比較占用資源。所以盡量減少jQuery對象的生成。
9、變量的作用域
當(dāng)一個變量不需要 在多個函數(shù)調(diào)用時,應(yīng)該把變量放在函數(shù)內(nèi),減少代碼執(zhí)行時查找代碼的時間。
10、將某些函數(shù)推遲到$(window).load執(zhí)行
$(document).ready確實(shí)好用,但是它可以再頁面渲染時,其他元素還沒有下載完成就執(zhí)行。
11、腳本的合并
腳本都是一一被加載的,減少腳本數(shù)量也能提高效率。
12、元素封裝
當(dāng)給一個節(jié)點(diǎn)插入一個內(nèi)容,可以先把內(nèi)容進(jìn)行封裝,再插入。
var content = "";
$("#head").html(content);
另外就是進(jìn)行js文件的壓縮。
隨著jQuery的不斷被使用,越來越多的優(yōu)化方法會被發(fā)現(xiàn)。
相關(guān)文章
jQuery基于ajax實(shí)現(xiàn)帶動畫效果無刷新柱狀圖投票代碼
這篇文章主要介紹了jQuery基于ajax實(shí)現(xiàn)帶動畫效果無刷新柱狀圖投票代碼,通過使用jquery動態(tài)操作頁面元素樣式屬性實(shí)現(xiàn)柱狀圖投票效果,非常具有實(shí)用價值,需要的朋友可以參考下2015-08-08深入理解jquery中extend的實(shí)現(xiàn)
extend()是jQuery中一個重要的函數(shù),作用是實(shí)現(xiàn)對對象的擴(kuò)展, 它經(jīng)常用于jQuery插件的開發(fā),jQuery內(nèi)部也使用它來擴(kuò)展屬性方法,如noConflict方法,就是用extend方法來擴(kuò)展的。下面來一起深入的再學(xué)習(xí)下jquery中extend的實(shí)現(xiàn)吧。2016-12-12jQuery實(shí)現(xiàn)顏色打字機(jī)的完整代碼
這篇文章主要介紹了jQuery實(shí)現(xiàn)顏色打字機(jī)的完整代碼,代碼簡單易懂,非常不錯,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-03-03jquery實(shí)現(xiàn)下拉框功能效果【實(shí)例代碼】
下面小編就為大家?guī)硪黄猨query實(shí)現(xiàn)下拉框功能效果【實(shí)例代碼】。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考2016-05-05jQuery獲得IE版本不準(zhǔn)確webbrowser的解決方法
用$.browser.version經(jīng)常出現(xiàn)一些不準(zhǔn)確的狀況,最近碰到,做了一些總結(jié),不知道是否全面2014-02-02jQuery Validation插件remote驗(yàn)證方式的Bug解決
jQuery插件很多,其中一個重要的插件便是jQuery Validation,它的作用是對表單進(jìn)行驗(yàn)證,還上了jQuery官網(wǎng)。2010-07-07基于Bootstrap和jQuery構(gòu)建前端分頁工具實(shí)例代碼
本文給大家介紹基于Bootstrap和jQuery構(gòu)建前端分頁工具實(shí)例代碼,包括前端分頁的優(yōu)缺點(diǎn)和解決辦法,對jquery bootstrap分頁知識感興趣的朋友一起通過本文學(xué)習(xí)吧2016-11-11jquery判斷復(fù)選框是否選中進(jìn)行答題提示特效
這篇文章主要介紹了jquery判斷復(fù)選框是否選中進(jìn)行答題提示特效,感興趣的小伙伴們可以參考一下2015-12-12