本文摘自PHP中文网,作者藏色散人,侵删。
实际上,更新cookie与替换cookie略有不同,因为我们想在cookie中放入的新值在某种程度上取决于cookie是否已经存在,如果存在,则取决于它包含什么。这意味着我们需要先读取现有的cookie,然后才能为其编写替换。需要注意的一点是,当我们读取cookie时,我们无法知道现有cookie何时到期,或者cookie是限制在特定文件夹中还是在整个域中可用。你需要在更换cookie时设置新的保留期,并且需要跟踪cookie在页面中的范围,以便每次都应用相同的域或路径选项。你在更新而不是替换cookie时,实际上能够读取的唯一内容是存储在cookie中的数据的实际值。
在本例中,我们将使用一个名为“accesscount”的cookie来计算访问者访问页面的次数,其中每次访问间隔不超过7天。如果两次访问间隔超过7天,那么cookie将过期,下一次访问将从0开始重新计数。我们使用了前面示例中的allCookies()和writeCookie()函数,因此为了实际执行更新,我们只需要最后两行代码。
代码示例如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | 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?(代码示例)的详细内容,更多文章请关注木庄网络博客!
相关阅读 >>
vue keep-alive组件的使用以及原理介绍
javascript警告框怎么消除
typescript和javascript的区别有哪些
javascript是一种运行在什么语言
javascript怎样实现累加
javascript中url的相关内容介绍(附代码)
javascript怎么改变src
javascript是前端吗
一起看看javascript与css和sass如何进行交互
10个实用的es6方法,快来收藏!
更多相关阅读请进入《javascript》频道 >>
人民邮电出版社
本书对 Vue.js 3 技术细节的分析非常可靠,对于需要深入理解 Vue.js 3 的用户会有很大的帮助。——尤雨溪,Vue.js作者
转载请注明出处:木庄网络博客 » 如何更新JavaScript中的cookie?(代码示例)