js操作cookie
程序员文章站
2024-01-20 19:49:52
...
js操作cookie
introduce
本地存储有三种方式吧,cookie、localstorage、sessionstorage
随便扯扯
- cookie是网站为了标识用户身份而存储在用户本地终端上的数据,通常是加密的。是由服务器生成的。
- cookie的数据始终在同源的http请求中携带,即使不需要,也就是说他们会在浏览器和服务器之间来回传递
- localstorage和sessionstorage仅仅在本地保存,不会发给服务器
- cookie的大小是4kb,sessionStorage和loaclStorage虽然也有大小限制,但是他们比cookie要大得多,可以达到5m
- localStorage可以永久保存数据,浏览器关闭之后不会丢失的,除非主动删除
- sessionStroage 数据在当前浏览器窗口关闭之后自动删除
- cookie 设置的cookie过期时间之前一直有效,即使窗口或者浏览器关闭
- http-only属性标识一个客户端jas能否操作改cookie
- max-age属性表示缓存时间,单位为秒,domain设置可以访问该cookie的域名
- cookie的优化方案有
- 去除没有必要的cookie,如果页面不需要cookie就完全禁用
- 将cookie的大小减少到最小,由于cookie在访问对应于明霞的资源时候都会通过http请求发送到服务器,所以减少cookie的代销,可以减少http请求报文的大小,提高相应速度。
- 设置合适的过期时间,较长的过期时间可以提高访问速度。
- 通过不同的domain来减少cookie的使用,在访问js,css和图片是,大多数cookie是多余的,可以使用不同的domain来存储这些静态资源,这样访问这些资源时就不会发送多余的cookie,从而提高响应速度举个例子来说,我们的主网站是 w w w . sunrobin.com/default.aspx,那么图片类的静态文件应该放到w w w.sunrobinimg.com域名下边。而且这两个域名其实最终可以指向同一个server,但是浏览器发送cookie的原则只是根据域名是否一样,不关心最终在哪个server,而且还有一种方式,就是使用CDN
- 那么是cookie的名称,value是cookie的值,domian字段设置cookie的域名,path字段可以访问cookiede页面路径
cookie的一些操作方法
let cookie = {
//参数分别是cookie的名称,cookie的值,cookie的有效时间
set : function(key ,value, time) {
let date = new Date();
let expiresDays = time;
date.setTime(date.getTime() + expiresDays * 24 * 3600 *1000);
//这里是添加到已有的cookie中, 不要弄成+=
document.cookie = key + '=' + value + ";expores=" + date.toTimeString();
},
get : function(key) {
let getCookie = document.cookie.replace(/[ ]/g, "");
let arrCookie = getCookie.split(";");
let tips;
for (let i = 0; i != arrCookie.length; i++) {
let arr = arrCookie[i].split('=');
if (key == arr[0]) {
tips = arr[1];
break;
}
}
return tips;
},
delete : function(key) {
let date = new Date();
date.setTime(date.getTime()-10000000);
document.cookie = key + '= ;expores=' + date.toTimeString();
}
}
Writer&Contact
{
"name":"Jontyy" ,
"email": " [email protected]",
"gitHub" : "https://github.com/YJD199798/"
}
上一篇: )快速删除数组中重复的数据(疑)
下一篇: js小结