prefetch和preload区别
prefetch 与 preload 的区别是什么?
先来看一段代码
12<link rel="prefetch" href="style.css" as="style" /><link rel="preload" href="main.js" as="script" />
preload 是⼀个声明式 fetch,可以强制浏览器在不阻塞 document 的 onload 事件的情况下请
求资源。 preload 顾名思义就是⼀种预加载的⽅式,它通过声明向浏览器声明⼀个需要提前加载的资源,当资源真正被使⽤的时候⽴即执⾏,就⽆需等待⽹络的消耗
prefetch 告诉浏览器这个资源将来可能需要,但是什么时间加载这个资源是由浏览器来决定的。
若能预测到⽤户的⾏为,⽐如懒加载,点击到其它⻚⾯等则相当于提前预加载了需要的资源。
无题
说说JSON的相关⽤法和应⽤场景?三种⽤法简单值: 数字 字符串 布尔类型
对象值 key value组成 必须添加双引号 value 可以是简单值 对象值 数组值
数组值 内容可以是对象值 简单值 数组值
应⽤场景⽹络传输的JSON数据
项⽬的某些配置⽂件
⾮关系型数据库将JSON作为存储⽂件
load和DOMcontentLoaded区别
load
浏览器加载完所有的HTML 还加载完所有的外部资源 样式 图⽚等
DOMContentLoaded
HTML⽂档所有资源都加载完成 并构建了DOM树 但是⼀些外部资源还没有加载完成 如图⽚的src
事件委托的理解?利⽤事件的冒泡机制,以及事件对象中可以准确获知触发事件的元素机制(e.target),将⼦元素事件委托
给⽗元素处理的现象
事件委托
利⽤事件的冒泡机制,以及事件对象中可以准确获知触发事件的元素机制(e.target),将⼦元素事件委托
给⽗元素处理的现象。
冒泡事件
冒泡和事件捕获的理解事件冒泡:
从最内层的元素向外依次传递的顺序, 默认是事件冒泡
事件捕获:
从外层到内层依次传递的顺序 ,可以通过addEventListener(“click”,fn,true) 监听事件捕获
attributy和Property
attribute
浏览器解析HTML元素时 会将对应的属性(attribute)放在对应的元素对象上
具体分为标准的属性和⾮标准的属性
标准属性: id class href type value等等
⾮标准属性(⾃定义) :abc age height
Property
对于标准的attribute 会在DOM对象上创建对应的property属性
⼤多数情况下 他们是相互作⽤的 改变其中⼀个 另⼀个也会随之改变
⼤多数情况 推荐获取attribute 使⽤property⽅式 因为它默认是有类型的