HTML5 存储类型有什么区别?
HTML5 能够本地存储数据,(在之前都是使用 cookies 存储的)。
HTML5 提供了两种本地存储方案:
localStorage 用于持久化的本地存储,数据永远不会过期,关闭浏览器也不会丢失。 sessionStorage 同一个会话中的页面才能访问并且当会话结束后数据也随之销毁。因此sessionStorage不是一种持久化的本地存储,仅仅是会话级别的存储。
px em rem 的关系
px:绝对单位长度,类似于我们平时用到的米、厘米
em rem 是相对单位长度
rem 与 px之间的关系:
默认情况下:font-size:16px 相当于 1rem = 16px; 如果要修改默认情况,需要在html中修改(rem 中 r:root)
em 与 px之间的关系:
默认情况下,font-size :16px 相当于 1em = 16px ;如果需要修改默认情况,可以直接在元素上设置font-size(例如:font-size :32px) 或者 在元素的父元素中设置font-size,从而来影响子元素
em 与 rem 的区别:
rem只能在html标签里面设置rem的依赖的值(倍数关系)到底是多少
而em是可以在自己元素以及父级元素设置em依赖的值到底是多少
页面的加载和渲染过程
- 浏览器通过HTTP协议请求服务器,获取HMTL文档并开始从上到下解析,构建DOM;
- 在构建DOM过程中,如果遇到外联的样式声明和脚本声明,则暂停文档解析,创建新的网络连接,并开始下载样式文件和脚本文件;
- 样式文件下载完成后,构建CSSDOM;脚本文件下载完成后,解释并执行,然后继续解析文档构建DOM
- 完成文档解析后,将DOM和CSSDOM进行关联和映射,最后将视图渲染到浏览器窗口
在这个过程中,脚本文件的下载和执行是与文档解析同步进行,也就是说,它会阻塞文档的解析,如果控制得不好,在用户体验上就会造成一定程度的影响。
script标签中defer和async的区别
如果script标签中没有defer 和 async属性,浏览器在渲染中遇到js代码,就会立即停止渲染,下载并执行js部分,Js执行完毕之后,再接着渲染,这就会造成页面出现空白,所有通常会将script标签放在Body之后,避免了首屏渲染----
现在引入defer和async这两个属性用来控制外部脚本的下载和执行
绿色代表 html解析的时间
蓝色代表js网络加载的时间
红色代表js脚本执行的时间
defer 属性:开启新的线程下载脚本文件,Js下载和html解析是异步的,下载后不会立即执行,等html解析完之后,才开始执行js.
async属性:js下载时间和html解析也是异步进行,互不影响,但是js下载完立即执行js,此时html暂停解析,执行完毕之后才继续解析,这种情况也存在阻塞现象。
执行顺序: 多个带async属性的标签,不能保证加载的顺序;多个带defer属性的标签,按照加载顺序执行;
meta常用标签有哪些
meta标签由name 和 content 属性定义,用来描述网页文档的属性,比如网页作者、关键字、描述等等
char-set 描述网页的编码类型
<meta char-set = 'UTF-8' />
keywords 网页的关键字
<meta name='keywords' content = 'xxx' />
description
<meta name = 'description' content ='xxx' />
refresh 页面重定向和刷新
<meta name = 'refresh' content="0;url=" />
viewport 适配移动端,可以控制视口的大小和比例
<meta name= ' viewport ' content=''>
content的可选参数:
width viewport
:宽度(数值/device-width--输出设备的屏幕可见宽度,只跟你的设备有关)height viewport
:高度(数值/device-height)initial-scale
:初始缩放比例maximum-scale
:最大缩放比例minimum-scale
:最小缩放比例user-scalable
:是否允许用户缩放(yes/no)
搜索引擎索引方式
<meta name="robots" content="index,follow" >
- index,follow:允许抓取本页,允许跟踪链接。 也可以写成all
- index,nofollow:允许抓取本页,但禁止跟踪链接。
- noindex,follow:禁止抓取本页,但允许跟踪链接。
- noindex,nofllow:禁止抓取本页,同时禁止跟踪本页中的链接。 none