HTML语义化
💡 Tips:html语义化就是让页面内容结构化。
- 增加代码可读性,让人更容易读懂。
- 让搜索引擎更容易读懂,有助于爬虫抓取更多的有效信息。爬虫依赖标签来确定上下文和各个关键字的权重(SEO)
在没有css样式的情况下,页面依然能很好地呈现内容与代码结构。
script标签中defer与async的区别
💡 Tips:下述的script标签所处的位置为HTML文档上方,当script标签处于文档底部时,defer可有可无。
script
- 阻碍HTML解析,当代码运行时遇到
script
标签时,会立即下载JS脚本并执行,直到执行完毕后,再重新解析HTML。 - 如果获取JS脚本的网络请求响应时间或者执行时间过长,会导致白屏,即用户看不到页面内容。
- 阻碍HTML解析,当代码运行时遇到
- async script
- 异步下载,同步执行。当代码运行时遇到
<script async>
标签时,异步下载JS脚本,HTML继续解析,当脚本下载完毕后立即执行,此时可能会中断HTML的解析。 - async不可控。在异步JS脚本中获取到DOM元素与否取决于执行时间,并且,当存在多个async时,它们的执行时间不确定,完全依赖于网络传输结果,即谁先到先执行谁。
- 异步下载,同步执行。当代码运行时遇到
- defer script :
- 异步下载与执行。当代码运行时遇到
<script defer>
标签时,HTML继续解析,脚本异步下载,当HTML解析完毕后执行JS脚本。 - 如果存在多个
<script defer>
标签,浏览器会按照在HTML中出现的顺序执行,不会破坏JS脚本之间的依赖关系。
- 异步下载与执行。当代码运行时遇到