jQuery數(shù)據(jù)緩存用法分析
本文分析了jQuery數(shù)據(jù)緩存用法。分享給大家供大家參考。具體如下:
在jQuery的API幫助文檔中,jQuery這樣描述數(shù)據(jù)緩存的作用:用于在一個(gè)元素上存取數(shù)據(jù)而避免了循環(huán)引用的風(fēng)險(xiǎn)。
一、定義緩存數(shù)據(jù)
使用$(selector).data(name,value)方法可以為jQuery對(duì)象定義緩存數(shù)據(jù)。這些緩存數(shù)據(jù)被存放在匹配的DOM元素集合中所有DOM元素中。
var $link = $('a'); $link.data('linkType', 'home');
說(shuō)明:$(selector).data(name,value)可以在匹配的DOM元素上存放任何格式的數(shù)據(jù),而不僅僅是字符串。
二、獲取緩存數(shù)據(jù)
此時(shí),只需要一個(gè)參數(shù)即可,該參數(shù)指定緩存數(shù)據(jù)的名稱(chēng)。
var linkType = $link.data('linkType'); //'home'
說(shuō)明:如果讀取的緩存數(shù)據(jù)不存在,則返回值為undefined;如果jQuery集合指向多個(gè)元素,則將只返回第一個(gè)元素的對(duì)應(yīng)緩存數(shù)據(jù)。
三、刪除緩存數(shù)據(jù)
removeData()函數(shù)能夠刪除指定名稱(chēng)的緩存數(shù)據(jù),并返回對(duì)應(yīng)的jQuery對(duì)象。
//刪除緩存數(shù)據(jù)的同時(shí),返回對(duì)應(yīng)的jQuery對(duì)象。 var $a = $link.removeData('linkType');
四、jQuery數(shù)據(jù)緩存的使用規(guī)范
隨著調(diào)用data()函數(shù)次數(shù)增多,或者因使用不當(dāng),會(huì)使得cache對(duì)象急劇膨脹,最終影響程序的性能。
所以在使用jQuery數(shù)據(jù)緩存功能時(shí),應(yīng)及時(shí)清理緩存對(duì)象。jQuery提供了removeData()函數(shù)手動(dòng)清除緩存數(shù)據(jù)。根據(jù)jQuery框架的運(yùn)行機(jī)制,下面幾種情況不需要手動(dòng)清除數(shù)據(jù)緩存。
* 對(duì)elem執(zhí)行remove()操作,jQuery會(huì)自動(dòng)清除對(duì)象可能存在的緩存。
* 對(duì)elem執(zhí)行empty()操作,如果當(dāng)前elem子元素存在數(shù)據(jù)緩存,jQuery也會(huì)清楚子對(duì)象可能存在的數(shù)據(jù)緩存。
* jQuery復(fù)制節(jié)點(diǎn)的clone()方法不會(huì)復(fù)制data緩存。
希望本文所述對(duì)大家的jQuery程序設(shè)計(jì)有所幫助。
相關(guān)文章
簡(jiǎn)單談?wù)刯Query(function(){})與(function(){})(jQuery)
這篇文章主要簡(jiǎn)單介紹了jQuery(function(){})與(function(){})(jQuery)的區(qū)別,需要的朋友可以參考下2014-12-12JQuery 學(xué)習(xí)筆記 element屬性控制
JQuery元素屬性控制2009-07-07對(duì)稱(chēng)加密與非對(duì)稱(chēng)加密優(yōu)缺點(diǎn)詳解
本文主要介紹了對(duì)稱(chēng)加密與非對(duì)稱(chēng)加密的優(yōu)缺點(diǎn),具有一定的參考價(jià)值,下面跟著小編一起來(lái)看下吧2017-02-02jquery+css3打造一款ajax分頁(yè)插件(自寫(xiě))
這篇文章主要介紹了自己寫(xiě)的一款ajax分頁(yè)插件,用jquery+css3打造支持IE6+,但沒(méi)有動(dòng)畫(huà)效果,需要的朋友可以參考下2014-06-06基于jQuery的可以控制左右滾動(dòng)及自動(dòng)滾動(dòng)效果的代碼
迷上jQuery,相對(duì)于原生JavaScript,它是如此的美妙.也因此,促使我更加的努力的研習(xí)原生JavaScript.2010-07-07jQuery插件 tabBox實(shí)現(xiàn)代碼
最近對(duì)js以及jq產(chǎn)生了濃厚的興趣,看到j(luò)q有很多很好用的插件,功能各異,包括webUI,jqGrid等等。心里萌發(fā)了制作屬于自己的jq插件的想法。2010-02-02完美解決jQuery的hover事件在IE中不停閃動(dòng)的問(wèn)題
下面小編就為大家?guī)?lái)一篇完美解決jQuery的hover事件在IE中不停閃動(dòng)的問(wèn)題。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-02-02使用JQuery 加載頁(yè)面時(shí)調(diào)用JS的實(shí)現(xiàn)方法
下面小編就為大家?guī)?lái)一篇使用JQuery 加載頁(yè)面時(shí)調(diào)用JS的實(shí)現(xiàn)方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-05-05