小编给大家分享一下更新JavaScript中cookie的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
实际上,更新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中cookie的方法的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。