JS面试—页面加载和渲染过程

本文深入探讨了从输入URL到获取HTML的全过程,解析了window.onload与DOMContentLoaded的区别,以及资源加载与浏览器渲染页面的机制。强调了CSS与JS在页面加载中的最佳实践位置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、题目

1、从输入url到得到html的详细过程

2、window.onload和DOMContentLoaded的区别

二、知识点

2.1 加载资源的形式

2.2 加载一个资源的过程

2.3 浏览器渲染页面的过程


一、题目

1、从输入url到得到html的详细过程

  • 浏览器根据DNS服务器得到域名的IP地址(域名解析)
  • 向这个IP的服务器发送http请求
  • 服务器收到,处理并返回http请求
  • 浏览器得到返回内容

2、window.onload和DOMContentLoaded的区别

window.addEventListener('load',function(){
    //页面的全部资源加载完才会执行,包括图片,视频
})
window.addEventListener('DOMContentLoaded',function(){
    //DOM 渲染完即可执行,此时图片,视频换坑能没有加载完成
})

二、知识点

2.1 加载资源的形式

  • 输入url(或跳转页面)加载html
http://coding.m.imooc.com
  • 加载html中的静态资源
<script src="/static/js/jquery.js"></script>

2.2 加载一个资源的过程

  • 浏览器根据DNS服务器得到域名的IP地址(域名解析)
  • 浏览器通过TCP/IP与服务器进行连接
  • 向这个IP的服务器发送http请求
  • 服务器收到,处理并返回http请求
  • 浏览器得到返回内容

2.3 浏览器渲染页面的过程

结构——样式——整合

  • 根据HTML结构生成DOM Tree
  • 根据CSS生成CSSOM
  • 根据DOM和CSSOM整合形成RenderTree
  • 根据RenderTree开始渲染和展示
  • 遇到<script>时,会执行并阻塞渲染    因为js有权利改变DOM结构,避免冲突从上到下执行

为什么要把CSS放在head中?

先加载默认,又加载样式,用户体验差,性能体验差

为什么要把script放在body最下面?

不会阻塞HTML结构渲染,可以拿到所有的HTML

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值