實際上,更新cookie與替換cookie略有不同,因為我們想在cookie中放入的新值在某種程度上取決於cookie是否已經存在,如果存在,則取決於它包含什麼。這意味著我們需要先讀取現有的cookie,然後才能為其編寫替換。
需要注意的一點是,當我們讀取cookie時,我們無法知道現有cookie何時到期,或者cookie是限制在特定資料夾中還是在整個域中可用。你需要在更換cookie時設定新的保留期,並且需要追蹤cookie在頁面中的範圍,以便每次都套用相同的網域或路徑選項。當你在更新而不是替換cookie時,實際上能夠讀取的唯一內容是儲存在cookie中的資料的實際值。
在本例中,我們將使用名為「accesscount」的cookie來計算訪客造訪頁面的次數,其中每次造訪間隔不超過7天。如果兩次訪問間隔超過7天,那麼cookie將過期,下一次訪問將從0開始重新計數。我們使用了前面範例中的allCookies()和writeCookie()函數,因此為了實際執行更新,我們只需要最後兩行程式碼。
程式碼範例如下:
var cookie; allCookies = function() { var cr, ck, cv; cr = []; if (document.cookie != '') { ck = document.cookie.split('; '); for (var i=ck.length - 1; i>= 0; i--) { cv = ck.split('='); cr[ck[0]]=ck[1]; } } return cr; }; writeCookie = function(cname, cvalue, days,opt) { var dt, expires, option; if (days) { dt = new Date(); dt.setTime(dt.getTime()+(days*24*60*60*1000)); expires = "; expires="+dt.toGMTString(); } else expires = ''; if (opt) { if ('/' = substr(opt,0,1)) option = "; path="+opt; else option = "; domain="+opt; } else option = ''; document.cookie = cname+"="+cvalue+expires+option; } cookie = allCookies(); if (cookie.accesscount != null) writeCookie('mycookie', cookie.accesscount + 1,7); else writeCookie('mycookie', 1,7);
相關推薦:《javascript教學》
本篇文章就是關於更新JavaScript中的cookie的方法介紹,希望對需要的朋友有幫助!
以上是如何更新JavaScript中的cookie? (程式碼範例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!