href:
- 名为超文本链接
- 常见于 link、a 标签,用于表征当前页面元素和引用资源间产生联系。
<link href='./index.css' rel = 'stylesheet'>
当解析到该标签时,只会简单标识该标签为 CSS, 并不会去加载对应资源。因此,继续解析 DOM。
src
- source简写
- 常见于 img、script标签,表征当前页面元素需要使用该资源替换
- 当遇到 src 属性时,会向目标地址发送请求,请求对应资源,处理后替换该位置元素,因此阻塞后续DOM解析。
- script 标签新增 defer、 async 属性,区别如下
共同点: defer 和 async 属性存在时,script资源加载与dom的加载、解析并行。
不同点:
defer 属性规定:script资源加载完毕后,等待dom渲染完毕,DOMcontentLoaded事件触发前,按照上下文中定义顺序执行。
async 属性规定,script资源加载完毕后,可以立即执行,且谁先加载完谁执行。
- scr 属性具有跨域能力(同源政策只是浏览器的安全政策),需要防范 CSRF 攻击。