jQuery利用cookie 實(shí)現(xiàn)本地收藏功能(不重復(fù)無需多次命名)
1、cookie是什么:
①、cookie 是存儲(chǔ)于訪問者計(jì)算機(jī)中的變量。每當(dāng)一臺(tái)計(jì)算機(jī)通過瀏覽器來訪問某個(gè)頁面時(shí),那么就可以通過 JavaScript 來創(chuàng)建和讀取 cookie。
?、?、實(shí)際上 cookie 是存于用戶硬盤的一個(gè)文件,這個(gè)文件通常對(duì)應(yīng)于一個(gè)域名,當(dāng)瀏覽器再次訪問這個(gè)域名時(shí),便使這個(gè)cookie可用。因此,cookie可以跨越一個(gè)域名下的多個(gè)網(wǎng)頁,但不能跨越多個(gè)域名使用。
?、邸⒉煌瑸g覽器對(duì) cookie 的實(shí)現(xiàn)也不一樣。即保存在一個(gè)瀏覽器中的 cookie 到另外一個(gè)瀏覽器是 不能獲取的。
PS:cookie 和 session 都能保存計(jì)算機(jī)中的變量,但是 session 是運(yùn)行在服務(wù)器端的,而客戶端我們只能通過 cookie 來讀取和創(chuàng)建變量。
2、cookie的作用:
?、佟⒂脩粼诘谝淮蔚卿浤硞€(gè)網(wǎng)站時(shí),要輸入用戶名密碼,如果覺得很麻煩,下次登錄時(shí)不想輸入了,那么就在第一次登錄時(shí)將登錄信息存放在 cookie 中。下次登錄時(shí)我們就可以直接獲取 cookie 中的用戶名密碼來進(jìn)行登錄。
PS:雖然 瀏覽器將信息保存在 cookie 中是加密了,但是可能還是會(huì)造成不安全的信息泄露
?、?、類似于購物車性質(zhì)的功能,第一次用戶將某些商品放入購物車了,但是臨時(shí)有事,將電腦關(guān)閉了,下次再次進(jìn)入此網(wǎng)站,我們可以通過讀取 cookie 中的信息,恢復(fù)購物車中的物品。
PS:實(shí)際操作中,這種方法很少用了,基本上都是將這些信息存儲(chǔ)在數(shù)據(jù)庫中。然后通過查詢數(shù)據(jù)庫的信息來恢復(fù)購物車?yán)锏奈锲?br />
?、邸㈨撁嬷g的傳值。在實(shí)際開發(fā)中,我們往往會(huì)通過一個(gè)頁面跳轉(zhuǎn)到另外一個(gè)頁面。后端服務(wù)器我們可以通過數(shù)據(jù)庫,session 等來傳遞頁面所需要的值。但是在瀏覽器端,我們可以將數(shù)據(jù)保存在 cookie 中,然后在另外頁面再去獲取 cookie 中的數(shù)據(jù)。
PS:這里要注意 cookie 的時(shí)效性,不然會(huì)造成獲取 cookie 中數(shù)據(jù)的混亂。
正文開始,下面通過代碼給大家介紹jq cookie 本地收藏功能,
JS核心部分
說明:用split(',')分隔字符串轉(zhuǎn)換數(shù)組數(shù)組,把上一次收藏的id 和這一次的收藏用 + “,”+ 當(dāng)前id 來存入,到時(shí)候用split() 方法 轉(zhuǎn)換成數(shù)組即可。
<script type="text/javascript"> $(function(){ var arr = $.cookie("attractionsid").split(','); console.log($.cookie()); for (var i = 0; i < arr.length; i++) { if(parseInt(arr[i]) == parseInt( 請(qǐng)?zhí)钊隝D值 )){ //判斷是否收藏過,收藏過亮圖標(biāo) $('#shoucang2').removeClass('hide'); $('#shoucang1').addClass('hide'); break; } }; $("#shoucang").click(function(event) { var judge = true; console.log(arr) for (var i = 0; i < arr.length; i++) { if(parseInt(arr[i]) == parseInt(請(qǐng)?zhí)钊隝D值)){ arr.splice(i,1); $.cookie("attractionsid", arr, { expires: 361}); console.log('取消收藏'); $('#shoucang2').addClass('hide'); $('#shoucang1').removeClass('hide'); judge = false; break; } }; if(judge){ $.cookie("attractionsid", $.cookie("attractionsid") + ","+"請(qǐng)?zhí)钊隝D值", { expires: 361}); console.log('收藏成功'); $('#shoucang2').removeClass('hide'); $('#shoucang1').addClass('hide'); } }); }) </script>
總結(jié)
以上所述是小編給大家介紹的jQuery利用cookie 實(shí)現(xiàn)本地收藏功能,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
相關(guān)文章
基于jQuery實(shí)現(xiàn)手風(fēng)琴菜單、層級(jí)菜單、置頂菜單、無縫滾動(dòng)效果
這篇文章主要介紹了基于jQuery實(shí)現(xiàn)手風(fēng)琴菜單、層級(jí)菜單、置頂菜單、無縫滾動(dòng)菜單的圖文說明,本文效果展示和代碼實(shí)現(xiàn)給大家介紹的非常詳細(xì),需要的朋友可以參考下2017-07-07jQuery Ajax提交表單查詢獲得數(shù)據(jù)實(shí)例代碼
用戶輸入一個(gè)表單,輸入準(zhǔn)考證和驗(yàn)證碼,驗(yàn)證用戶是否輸入表單,點(diǎn)擊查詢提交,然后從服務(wù)器得到返回的數(shù)據(jù)并顯示出來2012-09-09JQuery標(biāo)簽頁效果的兩個(gè)實(shí)例講解(4)
本文跟大家分享了兩個(gè)Jquery標(biāo)簽頁效果,各有各的特色,希望大家都會(huì)喜歡,并且能夠熟練掌握,感興趣的小伙伴們可以參考一下2015-09-09使用CDN和AJAX加速WordPress中jQuery的加載
這篇文章主要介紹了使用CDN和AJAX加速WordPress中jQuery的加載的方法,注意一下WordPress中以及CDN的Google連接在內(nèi)地的網(wǎng)絡(luò)問題,需要的朋友可以參考下2015-12-12jQuery實(shí)現(xiàn)form表單基于ajax無刷新提交方法詳解
這篇文章主要介紹了jQuery實(shí)現(xiàn)form表單基于ajax無刷新提交方法,結(jié)合實(shí)例形式分析了jQuery使用$.ajax()方法實(shí)現(xiàn)無刷新提交的詳細(xì)步驟與實(shí)現(xiàn)技巧,并附帶了一個(gè)較為完整的實(shí)例供大家參考,需要的朋友可以參考下2015-12-12jquery實(shí)現(xiàn)預(yù)覽提交的表單代碼分享
這篇文章主要介紹了jquery實(shí)現(xiàn)預(yù)覽提交的表單代碼,需要的朋友可以參考下2014-05-05jQuery Validation Engine驗(yàn)證控件調(diào)用外部函數(shù)驗(yàn)證的方法
這篇文章主要介紹了jQuery Validation Engine驗(yàn)證控件調(diào)用外部函數(shù)驗(yàn)證的方法,需要的的朋友參考下吧2017-01-01