js操作cookie

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/"
}

你可能感兴趣的:(Javascript)