目录
13.cookie、localStorage、sessionStorage区别
14.简述window对象除 document以外的一些常用子对象,并描述其作用?
13.cookie、localStorage、sessionStorage区别
1.先介绍下
cookie、localStorage、sessionStorage这三者都可以被用来在浏览器端存储数据,而且都是字符串类型的键值对。
Cookie是服务器发送到用户浏览器并保存在浏览器上的一块数据, 它会在浏览器下一次发起请求时被携带并发送到服务器上。可以它用来确定两次请求是否来自于同一个浏 览器,从而能够确认和保持用户的登录状态。Cookie的使用使得基于无状态的HTTP协议上记录稳定的状态信息成为了可能。
localStorage和sessionStorage 是 HTML5 标准中新加入的技术,可以用来存储数据。
2.不同点
1.与服务器之间的通讯:
cookie在浏览器与服务器之间来回传递,每次都会携带在HTTP头中,作用是与服务器进行交互,作为http规范的一部分而存在的,如果使用cookie保存过多数据会带来性能问题;
localstorage和sessionstorage不参与和服务器间的通信,不会把数据发给服务器,仅在本地保存,存储在本地的数据可以直接获取。
2.存储大小:
cookie存储大小为4k
localStorage和sessionStorage的存储数据大小一般都是:5MB
3.存储内容类型:
会话cookie一般不存储在硬盘而是保存在内存里,当然这个行为并不是规范规定的。若设置了过期时间,浏览器就会把cookie保存到硬盘上。
localStorage和sessionStorage只能存储字符串类型,对于复杂的对象可以使用ECMAScript提供的JSON对象的stringify和parse来处理;
4.数据有效期:
cookie只在设置的cookie过期时间之前一直有效,即使窗口或浏览器关闭。
localStorage:始终有效,窗口或浏览器关闭也一直保存,因此用作持久数据;
sessionStorage:仅在当前浏览器窗口关闭前有效,自然也就不可能持久保持;
5.作用域不同:
cookie也是在所有同源窗口中都是共享的,cookie在不设置过期时间的前提下,只在当前的会话有效。
localStorage在所有同源窗口中都是共享的,同浏览器无法共享local和session的信息,同浏览器下,local可以在不同页面 (指的是相同域名和端口的下的不同页面) 共享相同的local数据;
sessionStorage不在不同的浏览器窗口中共享,即使是同一个页面,不同页面或标签页间无法共享sessionStorage的信息,需要注意页面及标签页仅指顶级窗口,如果一个标签页包含多个iframe标签且他们属于同源页面,那么他们之间是可以共享sessionStorage的;
6.应用场景:
cookie的作用:主要用于保存登录信息,设置“每次请求都要携带的信息(最典型的就是身份认证信息)”就特别适合放在cookie中 。
localStoragese:常用于长期登录(+判断用户是否已登录),适合长期保存在本地的数据;
sessionStorage:敏感账号一次性登录;
14.简述window对象除 document以外的一些常用子对象,并描述其作用?
window对象有很多子对象,除了 document以外,还有如下常用子对象:
- screen对象:此对象包含有关客户端显示屏幕的信息
- history对象:此对象包含用户访问过的 URL;
- location对象:此对象包含有关当前 URL的信息
- navigator对象:此对象包含有关浏览器的信息
- event对象:任何事件触发后将会产生一个 event对象
15.css中水平垂直居中的方法有哪些?
- 盒子:
-
盒子定宽居中 ①absolute+负margin ②absolute+margin:auto ③absolute+calc 不定宽居中 ①absolute + transform ②flex
- 文本(内联元素)水平垂直居中
-
text-align:center: line-height:盒子高度;
16.css如何做兼容的?
**了解以下内容-不背诵**
从技术出发
前缀CSS3(-webkit- / -moz- / -o-*)和正常CSS3在浏览器中的支持情况是这样的:
1.之前:浏览器只支持前缀CSS3,不支持正常CSS3;
2.现在:浏览器既支持前缀CSS3,又支持正常CSS3;
-
.transition { /*渐进增强写法*/ -webkit-border-radius:30px 10px; -moz-border-radius:30px 10px; border-radius:30px 10px; } .transition { /*优雅降级写法*/ border-radius:30px 10px; -moz-border-radius:30px 10px; -webkit-border-radius:30px 10px; }