cookie
由于http请求每次都是独立的,它的执行情况和结果与前面的请求、之后的请求没有直接关系,没有办法区分当前客户,所以产生了cookie。使特定客户端与服务器产生联系
cookie能做什么
- 保存登录的状态,验证身份是否过期
- 记录用户行为
切换个性主题;最近访问记录; - 加入购物车
在不同的页面,可以把信息存入cookie,提交订单的时候统一提交。
cookie前端优化
- 去除没有必要的cookie,如果网页不需要cookie就完全禁掉。
- 设置合适的过期时间,较长的过期时间可以提高响应速度。
- 将cookie的大小减到最小
- cookie隔离
访问对应域名
如果静态文件都放在主域名下,那静态文件请求的时候都带有的cookie的数据提交给server的,非常浪费流量,所以不如隔离开。因为cookie有域的限制,因此不能跨域提交请求,故使用非主要域名的时候,请求头中就不会带有cookie数据,这样可以降低请求头的大小,降低请求时间,从而达到降低整体请求延时的目的。同时这种方式不会将cookie传入Web Server,也减少了Web Server对cookie的处理分析环节,提高了webserver的http请求的解析速度。
cookie使用
点击查看代码
function setCookie(key, value, iDay) {
var oDate = new Date();
oDate.setDate(oDate.getDate() + iDay);
document.cookie = key + '=' + value + ';expires=' + oDate;
}
function removeCookie(key) {
setCookie(key, '', -1);//Cookie保质期退回一天便可以删除
}
function getCookie(key) {
var cookieArr = document.cookie.split('; ');//split把cookie分割开
for(var i = 0; i < cookieArr.length; i++) {
var arr = cookieArr[i].split('=');//split('=')分割键值对
if(arr[0] === key) {
return arr[1];
}
}
return '';
}