技术 0 2025-09-18 17:20当一个用户从浏览器的地址栏内输入一个Url,并按下了enter
中间会发生什么呢?(简单描述)
- 1.DNS解析,把请求的目标域名转为ip地址
- 2.根据IP地址与服务器建立TCP连接
- 3.服务器返回html代码
- 4.浏览器开始解析html,会从上至下以此解析,遇到head中的css,js等等
- css文件下载不会阻塞后面body中的dom解析和渲染,
- 图片/音乐/视频等媒体资源异步下载不会阻塞dom的解析和渲染
- js会阻塞(前提是这个js文件放在了body的head中)ps:如果其中js逻辑有异步的网络请求代码 这部分也不会阻塞dom渲染
- JS 异步请求(Fetch/Ajax):不会阻塞 HTML 解析,
- 并且script标签中的defer(脚本异步下载,不阻塞 DOM 解析;但会在 DOM 完成后,按 HTML 中的顺序 执行。)/ async(脚本异步下载,下载完成后立即执行,不保证顺序,可能打断 DOM 解析。)
- 5.HTML:严格从上到下顺序解析,直到整个页面渲染完成,异步渲染的会根据具体js的网络请求完成后,依次渲染