cookie对比localStorage哪个适合作为网站皮肤存储

cookie

cookie : 一般由服务器生成,可设置失效时间。如果在浏览器生成,默认是关闭浏览器之后失效

    存储大小:4k

    每次都会携带在HTTP头中,如果使用 cookie 保存过多数据会带来性能问题

    一般由服务器端生成,用于标识用户身份

缺点 : 原生的cookie用起来有点麻烦,如果用jQuery,则需要引入jquery库及jquery.cookie库

优点 : 兼容性比较好,对IE浏览器也很好兼容,可兼容IE6,厉害了我的哥

需要注意 :  本地支持cookie的浏览器有 : IE6+,火狐(目前测试过这些浏览器)

      不支持的浏览器有:360浏览器,谷歌浏览器,欧朋浏览器(目前测试过这些浏览器)

      但是把文件放到,浏览器中都有很好的支持

cookie调用方式

新添加一个会话cookie:

$.cookie('the_cookie', 'the_value');
注:当没有指明cookie有效时间时,所创建的cookie有效期默认到用户关闭浏览器为止,所以被称为“会话cookie(session cookie)” 创建一个cookie并设置有效时间为7天: $.cookie('the_cookie', 'the_value', { expires: 7 });
注:当指明了cookie有效时间时,所创建的cookie被称为“持久cookie(persistent cookie)”。 创建一个cookie并设置cookie的有效路径:
$.cookie('the_cookie', 'the_value', { expires: 7, path: '/' });
注:在默认情况下,只有设置cookie的网页才能读取该cookie。如果想让一个页面读取另一个页面设置的cookie,必须设置cookie的路径。
cookie的路径用于设置能够读取cookie的顶级目录。将这个路径设置为网站的根目录,可以让所有网页都能互相读取cookie(一般不要这样设置,防止出现冲突) 读取cookie:
$.cookie('the_cookie');
// cookie存在 => 'the_value' $.cookie('not_existing'); // cookie不存在 => null 删除cookie,通过传递null作为cookie的值即可:
$.cookie('the_cookie', null);

localStorage

LocalStorage : 除非被清楚,否则永久保存

    一般 5MB

    仅在客户端中保存,不参与和服务器的通信。

    用于浏览器端缓存数据

缺点 : 对IE浏览器有兼容性问题,官网说能兼容IE8+,可我的浏览器IE10也没有效果,到现在还未解决此问题,如果有人知道,请留言告知我,谢谢

优点 : 用起来非常简单,直接申明变量即可

需要注意 :经过测试:在本地中IE所有浏览器均不支持LocalStorage,其他浏览器都支持

      部署到服务器中,IE8及IE8以上都支持LocalStorage

如果对IE没有很高的要求建议用LocalStorage,如果对IE有高要求那么建议用LocalStorage,因人而异

原理 : 通过改变link中的href路径,达到主题切换效果

LocalStorage 调用方式

localStorage.setItem("key","value");//存储变量名为key,值为value的变量  

localStorage.key = "value"//存储变量名为key,值为value的变量  

localStorage.getItem("key");//获取存储的变量key的值www.it165.net  

localStorage.key;//获取存储的变量key的值  

localStorage.removeItem("key")//删除变量名为key的存储变量  

效果图:

点击不同的色块,字体会变成不一样的颜色

运行我的dom之前,请在当前目录下新建一个css文件,然后在css文件中键入5个css主题文件

css文件

样式内容

localStorage技术

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>theme - localStorage</title>
<!--<link rel="stylesheet" id = "theme" href="css/green.css">-->
<style>
*{margin: 0;padding: 0}
.theme-style{overflow: hidden;margin: auto;width: 300px;}
.theme-style li{display: inline-block;width: 50px;height: 50px;margin-right: 0.5em;float: left;cursor: pointer}
.box{width: 400px;margin: auto;line-height: 40px;}
.theme-style li:nth-child(1){background: red}
.theme-style li:nth-child(2){background: green}
.theme-style li:nth-child(3){background:yellow}
.theme-style li:nth-child(4){background: pink}
.theme-style li:nth-child(5){background: orange}
</style>
</head>
<body>
<ul id="theme-style" class="theme-style">
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
<div class="box">
<p>上周五下午三点收到一个沙特客户钢制更衣柜的询价. 严格意义上也算个老客户,两年前下过一个订单. 当时收到货后还比较满意,曾经有意向要做沙特的代理,后来因为经济情况不了了之.</p>
</div>
</body>
</html>
<script>
//自动加载加入节点
var link = document.createElement('link');
var head = document.getElementsByTagName('head')[0];
link.rel = 'stylesheet';
link.id = 'theme';
localStorage.getItem('url') ? link.href = localStorage.getItem('url') : link.href = 'css/red.css';
head.appendChild(link) //获取内联样式
function getCss(obj,name){
if(obj.currentStyle) {
return obj.currentStyle[name];
}
else {
return document.defaultView.getComputedStyle(obj,null)[name];
}
} var arr = ['red' , 'green' , 'yellow' , 'pink' , 'orange'];
var themeStyle = document.getElementById('theme-style').getElementsByTagName('li');
var link = document.getElementById('theme');
//更换样式
for(var i = 0 ; i < themeStyle.length ; i++ ){
(function(number){
themeStyle[i].onclick = function(){
localStorage.setItem('url','css/'+arr[number]+'.css');
link.setAttribute('href',localStorage.getItem('url'));
}
})(i);
}
</script>

cookie技术

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>theme - localStorage</title>
<script src="js/jquery-3.2.1.min.js"></script>
<script src="js/jquery.cookie.js"></script>
<!--<link rel="stylesheet" id = "theme" href="css/green.css">-->
<style>
*{margin: 0;padding: 0}
.theme-style{overflow: hidden;margin: auto;width: 300px;}
.theme-style li{display: inline-block;width: 50px;height: 50px;margin-right: 0.5em;float: left;cursor: pointer}
.box{width: 400px;margin: auto;line-height: 40px;}
.theme-style li:nth-child(1){background: red}
.theme-style li:nth-child(2){background: green}
.theme-style li:nth-child(3){background:yellow}
.theme-style li:nth-child(4){background: pink}
.theme-style li:nth-child(5){background: orange}
</style>
</head>
<body>
<ul id="theme-style" class="theme-style">
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
<div class="box">
<p>上周五下午三点收到一个沙特客户钢制更衣柜的询价. 严格意义上也算个老客户,两年前下过一个订单. 当时收到货后还比较满意,曾经有意向要做沙特的代理,后来因为经济情况不了了之.</p>
</div>
</body>
</html>
<script>
//自动加载加入节点
var link = document.createElement('link');
var head = document.getElementsByTagName('head')[0];
link.rel = 'stylesheet';
link.id = 'theme';
$.cookie('url') ? link.href = $.cookie('url') : link.href = 'css/red.css';
head.appendChild(link) //获取内联样式
function getCss(obj,name){
if(obj.currentStyle) {
return obj.currentStyle[name];
}
else {
return document.defaultView.getComputedStyle(obj,null)[name];
}
} var arr = ['red' , 'green' , 'yellow' , 'pink' , 'orange'];
var themeStyle = document.getElementById('theme-style').getElementsByTagName('li');
var link = document.getElementById('theme');
//更换样式
for(var i = 0 ; i < themeStyle.length ; i++ ){
(function(number){
themeStyle[i].onclick = function(){
$.cookie('url','css/'+arr[number]+'.css' , { expires: 30 })
link.setAttribute('href',$.cookie('url'));
}
})(i);
}
</script>

    

    

cookie对比localStorage哪个适合作为网站皮肤存储的更多相关文章

  1. 深入了解浏览器存储:对比Cookie、LocalStorage、sessionStorage与IndexedDB

    摘要: 对比Cookie.LocalStorage.sessionStorage与IndexedDB 作者:浪里行舟 Fundebug经授权转载,版权归原作者所有. 前言 随着移动网络的发展与演化,我 ...

  2. JS 详解 Cookie、 LocalStorage 与 SessionStorage

    基本概念 Cookie Cookie 是小甜饼的意思.顾名思义,cookie 确实非常小,它的大小限制为4KB左右.它的主要用途有保存登录信息,比如你登录某个网站市场可以看到"记住密码&qu ...

  3. Cookie、LocalStorage 与 SessionStorage的区别在哪里?

    基本概念 Cookie Cookie 是小甜饼的意思.顾名思义,cookie 确实非常小,它的大小限制为4KB左右.它的主要用途有保存登录信息,比如你登录某个网站市场可以看到“记住密码”,这通常就是通 ...

  4. session,cookie,sessionStorage,localStorage的区别及应用场景

    session,cookie,sessionStorage,localStorage的区别及应用场景 浏览器的缓存机制提供了可以将用户数据存储在客户端上的方式,可以利用cookie,session等跟 ...

  5. 缓存session,cookie,sessionStorage,localStorage的区别

    https://www.cnblogs.com/cencenyue/p/7604651.html(copy) 浅谈session,cookie,sessionStorage,localStorage的 ...

  6. js中cookie,localStorage(sessionStorage)的存取

    一.cookie (原生的不好用,自己简单封装) 1. 存cookie的方法: function setCookie(c_name,value,expiredays) { var exdate=new ...

  7. cookie和localStorage、sessionStorage的区别

    先来讲讲localStorage吧,我最初接触localStorage,是听一个同学说他在做项目的过程中用到过这个.但是我自己也用到过的,就是在学习React的时候,在做一个小demo,这个demo简 ...

  8. 什么是cookie(前段时间看到别人简历上把cookie和localStorage混淆了所以专门又去了解了下)

    在前端面试中,有一个必问的问题:请你谈谈cookie和localStorage有什么区别啊? localStorage是H5中的一种浏览器本地存储方式,而实际上,cookie本身并不是用来做服务器存储 ...

  9. 详解Cookie、LocalStorage、SessionStorage

    不管是笔试还是面试相信大家都会经常遇到问Cookie.LocalStorage.SessionStorage 这三个不同的,什么不说先上一波图先: 针对他们大小之分应用场景也有不同: 因为考虑到每个 ...

随机推荐

  1. mysql中百万级别分页查询性能优化

    前提条件: 1.表的唯一索引 2.百万级数据 SQL语句: select c.* FROM ( SELECT a.logid FROM tableA a where 1 = 1 <#if pho ...

  2. 《Lucene in Action》(第二版) 第一章节的学习总结 ---- 用最少的代码创建索引和搜索

    第一章节是介绍性质,但是通过这一章节的学习,我理解到如下概念: 1.Lucene由两部分组成:索引和搜索.索引是通过对原始数据的解析,形成索引的过程:而搜索则是针对用户输入的查找要求,从索引中找到匹配 ...

  3. Google Code Jam 2014 资格赛:Problem C. Minesweeper Master

    Problem Minesweeper is a computer game that became popular in the 1980s, and is still included in so ...

  4. oracle导出sql

    1.点击要导出的表2.右键点击exportData3.选择要导出的sql语句

  5. 什么是scale up和scale out

    Scale Out(也就是Scale horizontally)横向扩展,向外扩展Scale Up(也就是Scale vertically)纵向扩展,向上扩展无论是Scale Out,Scale Up ...

  6. Keil 中 Program Size: Code RO-data RW-data ZI-data 所代表的意思

    在Keil中编译工程成功后,在下面的Bulid Ouput窗口中会输出下面这样一段信息: Program Size: Code=6320 RO-data=4864 RW-data=44 ZI-data ...

  7. .net Socket编程

    1.         什么是TCP/IP.UDP?2.         Socket在哪里呢?3.         Socket是什么呢?4.         你会使用它们吗? 什么是TCP/IP.U ...

  8. urllib库利用cookie实现模拟登录慕课网

    思路 1.首先在网页中使用账户和密码名登录慕课网 2.其次再分析请求头,如下图所示,获取到请求URL,并提取出cookie信息,保存到本地 3.最后在代码中构造请求头,使用urllib.request ...

  9. php配置opcache

    官网地址:http://php.net/opcache 使用下列推荐设置来获得较好的 性能: opcache.memory_consumption=128 opcache.interned_strin ...

  10. Mysql字符串截取函数

    今天建视图时,用到了MySQL中的字符串截取,很是方便. 感觉上MySQL的字符串函数截取字符,比用程序截取(如PHP或JAVA)来得强大,所以在这里做一个记录,希望对大家有用. 函数: 1.从左开始 ...