自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 收藏
  • 关注

原创 浏览器是如何渲染页面的?-面试题

渲染主线程解析遇到link引入的css文件时,如果当前的css文件没有下载完成,主线程会直接跳过,继续解析后续的HTML,当预解析线程下载和解析完成css文件后,再通知主线程去生成CSSOM树,这就是css不会阻塞HTML解析的根本原因。渲染主线程解析HTML字符串,生产DOM树和CSSOM树,在解析的过程中,遇到css解析css,遇到js执行js,在解析开始前,会开启一个预解析线程去查找并下载所有的外部css文件和js文件。分层的好处在于,将来某一层改变后,可以仅对该层进行绘制,提高了效率。

2025-08-23 15:56:24 585

原创 JS可以实现精确计时吗?为什么?-面试题

不能!

2025-08-23 11:16:50 133

原创 了解js的异步吗?-面试题

所以浏览器采用了异步的方式来避免,当渲染主线程执行某些任务时,如计时器、网络请求、事件回调,渲染主线程会通知其他线程来处理这些任务,自身立即结束对该任务的执行,当其他线程处理完成后,将事先传递的回调函数包装成任务放到消息队列的末尾,等待主线程的调度执行。这就造成了一方面繁重的渲染主线程白白的消耗时间,另一方面无法及时的渲染和更新页面,给用户造成页面卡死的现象。JS是一门单线程的语言,这是因为它运行在浏览器的渲染主线程中,而渲染主线程只有一个(一个标签页一个渲染主线程)。异步实现了不会阻塞的渲染主线程。

2025-08-23 11:11:52 232

原创 阐述一下事件循环-面试题

在W3C的标准中,任务是有类型的,相同类型的任务必须放在同一个队列,不同类型的任务可以放在不同的队列。不同的队列有不同的优先级,每一次事件循环,由浏览器自行决定取哪个队列的任务执行,但是浏览器中必须有一个微队列,微队列中的任务一定具有最高的优先级,必须最先调用。在浏览器的源码中,渲染主线程会开启一个不会结束的for循环,每一次循环取出消息队列中的第一个任务执行,其他线程只需要在合适的时候将任务添加到消息队列的末尾即可。过去把消息队列简单的分为宏队列和微队列,现在已无法满足复杂的浏览器环境。

2025-08-22 22:12:19 127

原创 Chrome插件开发实战:从入门到进阶

(注:每个章节应包含代码片段展示,例如Manifest配置示例、API调用范式、构建配置文件等,配合流程图说明关键架构设计)

2025-08-22 18:08:09 540

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除