cookie与本地存储

2017-05-29  本文已影响0人  碧玉含香

cookie也叫HTTP Cookie,最初是客户端与服务器端进行会话使用的

document.cookie = "username = xiaoming";(创建cookie的方式)


cookie由名/值对形式的文本组成:name=value。完整格式为:

name=value; [expires=date]; [path=path]; [domain=somewhere.com]; [secure]

中括号是可选,name=value是必选。

document.cookie = 'user=xiaoming'//写入

alert(document.cookie); //读取


2:创建cookie后的过期时间Cookie虽然在持久保存客户端用户数据提供了方便,分担了服务器存储的负担。但是还有很多局限性的。

第一:每个特定的域名下最多生成20个cookie(根据不同的浏览器有所区别)。

1.IE6或更低版本最多20个cookie

2.IE7和之后的版本最多可以50个cookie。IE7最初也只能20个,之后因被升级不定后增加了。

3.Firefox最多50个cookie

4.Opera最多30个cookie

5.Safari和Chrome没有做硬性限制。

为了更好的兼容性,所以按照最低的要求来,也就是最多不得超过20个cookie。当超过指定的 cookie时,浏览器会清理掉早期的cookie。IE和Opera会清理近期最少使用的cookie,Firefox会随机清理cookie。

第二:cookie的最大大约为4096字节(4k),为了更好的兼容性,一般不能超过4095字节即可。

第三:cookie存储在客户端的文本文件,所以特别重要和敏感的数据是不建议保存在cookie的。比如银行卡号,用户密码等

第四: cookie 会把数据发送到服务端  有些会造成不必要的带宽浪费

cookie 不适合大量数据的存储,因为它们由每个对服务器的请求来传递,这使得 cookie 速度很慢而且效率也不高。

Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。`

var d = new Date();

// d.setDate(d.getDate() + 3);

d.setMinutes(d.getMinutes() + 1);

document.cookie = "user = Jack;expires = " + d;

//3:创建cookie

function setCookie(name,value,day){

var cookieText = name + "=" + value;

if(day > 0){

var d = new Date();

d.setDate(d.getDate() + day);

cookieText = cookieText + ";expires= " + d;

}

document.cookie = cookieText;

}

setCookie("a","Rose",1);

setCookie("bbb","Jack",1);

setCookie("c","xiaoming",1);

document.write(document.cookie)

// alert(document.cookie.substring(2));

// var str = "c";

// var s = document.cookie.indexOf(str + "=");//8

// var e = document.cookie.indexOf(";",s);//14

// var start = s + str.length + 1;

// alert(document.cookie.substring(start,e))

// a=Rose

// substring(2)

// substr(2,4)

//获取

function getCookie(name){

var start,end;

if(document.cookie.indexOf(name + "=") != -1){

start = document.cookie.indexOf(name + "=");

end = document.cookie.indexOf(";",start);

if(end == -1){

end = document.cookie.length;

}

return document.cookie.substring(start + name.length + 1,end);

}

}

// alert(getCookie("a"));

// alert(getCookie("bbb"));

// alert(getCookie("c"));

删除cookie

function unsetCookie(name){

document.cookie = name + "=;expires = " + new Date(0);

}

unsetCookie("a");

//设置cookie

function setCookie(name,value,day){

var cookieText = name + "=" + value;

if(day > 0){

var d = new Date();

d.setDate(d.getDate() + day);

cookieText += ";expires = " + d;

}

document.cookie = cookieText;

}

//获取cookie

function getCookie(name){

var start,end;

if(document.cookie.indexOf(name + "=") != -1){

start = document.cookie.indexOf(name + "=");

end = document.cookie.indexOf(";",start);

if(end == -1){

end = document.cookie.length;

}

return document.cookie.substring(start + name.length + 1 , end);

}

}

var u = getCookie("username");

var newu;

if(u != "" && u != null){

alert("欢迎你回来,亲爱的" + u);

}else{

newu = prompt("请输入你的用户名");

if(newu != null && newu != ""){

setCookie("username",newu,1);

}

}

本地存储

localStorage.setItem("username","xiaoming");

//本地存储第一种设置方式

// localStore.setItem(key,value)

//本地存储第二种设置方式

// localStorage.属性名 = 属性值;

localStorage.book = "piao";

localStorage.a = "xiaohuang";

// alert(localStorage.book);

// alert(localStorage.username);

// 获取本地存储

// 第一种方式:

// localStorage.属性名

// 第二种方式:

删除

// localStorage.getItem("属性名")

// alert(localStorage.getItem("username"))

localStorage.removeItem("username")

//删除所有的存储信息(清空所有信息)

localStorage.clear();

应用缓存

manifest="demo.appcache"

cookie由名/值对形式的文本组成:name=value。完整格式为:

name=value; [expires=date]; [path=path]; [domain=somewhere.com]; [secure]

中括号是可选,name=value是必选。

document.cookie = 'user=xiaoming'//写入

alert(document.cookie); //读取

cookie由名/值对形式的文本组成:name=value。完整格式为:

name=value; [expires=date]; [path=path]; [domain=somewhere.com]; [secure]

中括号是可选,name=value是必选。

document.cookie = 'user=xiaoming'//写入

alert(document.cookie); //读取

cookie由名/值对形式的文本组成:name=value。完整格式为:

name=value; [expires=date]; [path=path]; [domain=somewhere.com]; [secure]

中括号是可选,name=value是必选。

document.cookie = 'user=xiaoming'//写入

alert(document.cookie); //读取

Cookie虽然在持久保存客户端用户数据提供了方便,分担了服务器存储的负担。但是还有很多局限性的。

第一:每个特定的域名下最多生成20个cookie(根据不同的浏览器有所区别)。

1.IE6或更低版本最多20个cookie

2.IE7和之后的版本最多可以50个cookie。IE7最初也只能20个,之后因被升级不定后增加了。

3.Firefox最多50个cookie

4.Opera最多30个cookie

5.Safari和Chrome没有做硬性限制。

为了更好的兼容性,所以按照最低的要求来,也就是最多不得超过20个cookie。当超过指定的 cookie时,浏览器会清理掉早期的cookie。IE和Opera会清理近期最少使用的cookie,Firefox会随机清理cookie。

第二:cookie的最大大约为4096字节(4k),为了更好的兼容性,一般不能超过4095字节即可。

第三:cookie存储在客户端的文本文件,所以特别重要和敏感的数据是不建议保存在cookie的。比如银行卡号,用户密码等

第四: cookie 会把数据发送到服务端  有些会造成不必要的带宽浪费

cookie 不适合大量数据的存储,因为它们由每个对服务器的请求来传递,这使得 cookie 速度很慢而且效率也不高。

Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。`

Cookie虽然在持久保存客户端用户数据提供了方便,分担了服务器存储的负担。但是还有很多局限性的。

第一:每个特定的域名下最多生成20个cookie(根据不同的浏览器有所区别)。

1.IE6或更低版本最多20个cookie

2.IE7和之后的版本最多可以50个cookie。IE7最初也只能20个,之后因被升级不定后增加了。

3.Firefox最多50个cookie

4.Opera最多30个cookie

5.Safari和Chrome没有做硬性限制。

为了更好的兼容性,所以按照最低的要求来,也就是最多不得超过20个cookie。当超过指定的 cookie时,浏览器会清理掉早期的cookie。IE和Opera会清理近期最少使用的cookie,Firefox会随机清理cookie。

第二:cookie的最大大约为4096字节(4k),为了更好的兼容性,一般不能超过4095字节即可。

第三:cookie存储在客户端的文本文件,所以特别重要和敏感的数据是不建议保存在cookie的。比如银行卡号,用户密码等

第四: cookie 会把数据发送到服务端  有些会造成不必要的带宽浪费

cookie 不适合大量数据的存储,因为它们由每个对服务器的请求来传递,这使得 cookie 速度很慢而且效率也不高。

Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。

cookie 和session 的区别:`

1、cookie数据存放在客户的浏览器上,session数据放在服务器上。

2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗

考虑到安全应当使用session。

3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能

考虑到减轻服务器性能方面,应当使用COOKIE。

4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。

5、所以个人建议:

将登陆信息等重要信息存放为SESSION

其他信息如果需要保留,可以放在COOKIE中

sessionStorage: session即会话的意思,在这里的session是指用户浏览某个网站时,从进入网站到关闭网站这个时间段,session对象的有效期就只有这么长。

sessionStorage 方法针对一个 session 进行数据存储。当用户关闭浏览器窗口后,数据会被删除。

localStorage: 将数据保存在客户端硬件设备上,不管它是什么,意思就是下次打开计算机时候数据还在。

localStorage 方法存储的数据没有时间限制。第二天、第二周或下一年之后,数据依然可用。

两者区别就是一个作为临时保存,一个长期保存。

应用程序缓存为应用带来三个优势:

离线浏览 - 用户可在应用离线时使用它们

速度 - 已缓存资源加载得更快

减少服务器负载 - 浏览器将只从服务器下载更新过或更改过的资源。

设置服务器识别appcache文件

扩展名:.appcache    类型:cache manifest  cache:6  需要加载的文件(如js/css/jpg文件等)

上一篇 下一篇

猜你喜欢

热点阅读