web前端综合问题
1. 讲讲输完网址按下回车,到看到网页这个过程中发生了什么?
- 域名解析
- 发起TCP的3次握手
- 建立TCP连接后发起http请求
- 服务器端相应http请求,浏览器得到html代码
- 浏览器解析html代码,并请求html代码中的资源
- 浏览器对页面进行渲染呈现给用户
2. 谈谈你对前端性能优化的理解
- 请求数量: 合并脚本和样式表,CSS Sprites,拆分初始化负载,划分主域
- 请求带宽: 开启GZip,精简JavaScript,移除重复脚本,图像优化,将icon做成字体
- 缓存利用: 使用CDN,使用外部JavaScript和CSS,添加Expires头,减少DNS查找,配置ETag,使Ajax可缓存
- 页面结构: 将样式放在顶部,将脚本放在底部,尽早刷新文档的输出
- 代码校验: 避免css表达式,避免重定向