谈谈HTML涉及到的面试题
在众多互联网公司的面试题目中,看似HTML所涉及到的内容寥寥可数,但却是面试者不容忽视的,以下我将把出现频率较多的HTML面试题进行汇总:
src 和 href 的区别
- src用于替换当前元素,目的是把资源下载到页面中,而href是超文本引用,建立与目标文件的联系。
- 浏览器解析 href 不会阻塞对文档的处理,src 会阻塞对文档的处理。
script 标签为什么要放在 body 标签的底部
因为浏览器在渲染html的时候是从上到下执行的,当遇到js文件的时候就会停止当前页面的渲染,转而去下载js文件,如果将script标签放在头部,在文件很大的情况下将导致首屏加载时间延长,影响用户体验。解决办法:
- 将script标签放在body的底部
- 通过defer、async属性将js文件转为异步加载
HTML5新特性
见”细数HTML5新特性”一文
从输入网址(URL)到页面显示的过程?
域名解析,对输入的url进行dns域名解析,得到对应的ip地址
根据这个ip地址,找到对应的服务器,发起tcp连接(三次握手)
建立tcp连接后发送http请求
服务器响应http请求,浏览器得到html代码
浏览器解析html代码,并请求html代码中的js、css、图片等资源
浏览器对页面进行渲染并呈现给用户
断开TCP连接(四次挥手)
html页面渲染过程
- 解析html文件,创建DOM树。
- 解析css,生成CSSOM(CSS Object Model),即CSS对象模型dom和css合并,构建渲染树(render tree)。
- layout 布局(渲染):依照盒子模型,计算每个节点在屏幕中的尺寸和位置。
- painting 绘制(渲染):按照计算出来的规则,通过显卡,将内容画到屏幕上。
