「前端」2019.10 猿辅导实习生一面

面试官是个小姐姐,本来有些紧张的,后来突然好了。
视频面试,时间大概50分钟的样子。

自我介绍

这个就不用说了,基本操作。

基础知识

1. 从URL输入到浏览器,到页面显示在浏览器中,这个过程你能说一下吗?

老生常谈,实习生面应该不会问的太细,所以简单说了一下流程:

  1. URL经过DNS解析成IP地址:
  • 首先到浏览器缓存当中查找是否有缓存,没有则下一步
  • 到操作系统缓存当中去查找是否有缓存,没有则下一步
  • 到路由器缓存当中查找是否存在缓存,没有则下一步
  • 通过ISP的DNS服务器查找是否有IP地址,没有则下一步
  • 通过根服务器递归查询
  1. 获取到服务器IP地址后:
  • 通过ARP协议,找到服务器的MAC地址
  • 与服务器建立TCP连接(3次握手)
  1. 与服务器建立TCP连接后:
  • 向服务器发送HTTP请求
  • 服务器接收到请求并处理后,返回HTML/CSS/JS代码
  1. 从服务器接收到HTML/CSS/JS代码后:
  • 浏览器会先对HTML代码进行解析,构建DOM树
  • 对CSS代码进行解析,构建CSS规则树
  • 加载JS代码(过程会阻塞DOM树和CSS规则树的构建,可以使用<script>标签的async/defer实现异步加载/执行)
  • 根据CSS规则树和DOM树,计算各元素位置,构建渲染树(Render Tree)
  • 调用操作系统的Native GUI的API绘制页面

这里强烈安利一个博客:https://github.com/ljianshu/Blog/issues/24

2. DOM事件机制

这点真没看过,直接坦白不会,然后就过了(恶补!!!)

DOM事件分为三个阶段:

  1. 捕获阶段
  2. 目标阶段
  3. 冒泡阶段

捕获阶段:
事件从window对象自顶向下向目标结点传递。
捕获是自顶向下的,事件是从window对象,传递到document对象,然后是html标签(通过document.documentElement获取到html标签),再到body(通过document.body获取到body标签),再按照body结构一层一层向下传递,最后到达目标元素。
在这里插入图片描述
目标阶段:
事件到达目标元素后,目标元素对事件进行处理。

冒泡阶段:
事件从目标元素自底向上向window对象传递。

<div id="outer">
    <div id="inner"></div>
</div>
window.onclick = function() {
   
    console.log('window');
};
document.onclick = function() {
   
    console.log('document');
};
document.documentElement.onclick = function(
  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值