【HTML/CSS面经】

HTML/CSS面经

  • HTML
    • 1. script标签中的async和defer的区别
    • 2. H5新特性
      • (1 标签语义化
      • (2 表单功能增强
      • (3 音频和视频标签
      • (4 canvas和svg绘画
      • (5 地理位置获取
      • (6 元素拖动API
      • (7 Web Worker
      • (8 Web Storage
      • (9 Web Socket
    • 3. 浏览器渲染页面
    • 4. 重绘和重排

HTML

1. script标签中的async和defer的区别

当浏览器在解析html的时候一旦遇到了script标签,那么就会停下来把script标签内的内容给执行掉,如果script标签引入的是外部文件,就需要等待下载和执行完才会回去继续往下解析。如果外部文件刚好是在一个网络情况较差的服务器上,那整个网站的加载都会带来很大影响。这就是script标签同步解析带来的阻塞弊端,从而影响页面加载性能

📌async异步 和 defer推迟:两者都是异步加载js。
不同点:async是js一加载完就会马上执行,不管html是否解析完毕,可能出现阻塞;而defer要等到html解析完毕之后才执行,不会阻塞html解析。

2. H5新特性

html5是一种描述性的标记语言。

(1 标签语义化

(2 表单功能增强

可以输入类型type(如email、date、url、tel)
新属性和功能:placeholder:输入框提示文本、required:必填字段、
autofocus:自动聚焦、pattern:正则验证等

(3 音频和视频标签

添加<audio>和<vedio>标签
属性有:autoplay:自动播放(许多浏览器已限制)、loop:循环播放
muted:静音、preload:预加载等

(4 canvas和svg绘画

(5 地理位置获取

(6 元素拖动API

  • 设置元素 draggable="true"

  • 监听拖动事件:dragstart, drag, dragend

  • 定义放置区域并监听:dragenter, dragover, dragleave, drop

(7 Web Worker

Web Worker 允许在后台线程中运行 JavaScript,不会阻塞 UI。

(8 Web Storage

  • 提供了比 cookies 更强大的客户端存储机制。Web Storage 更适合存储纯客户端的数据,而 Cookie 更适合需要在客户端和服务器之间传递的小量数据(如身份验证令牌)

  • 两种存储方式:

    localStorage - 永久存储,除非手动删除

    sessionStorage - 会话期间有效,关闭标签页后删除

cookie:

  1. 容量小4kb左右,可设置过期时间
  2. 是每次 HTTP 请求都会自动携带(通过请求头 Cookie)
    服务器可以通过响应头 Set-Cookie 设置客户端的 Cookie
    3.适合使用 Cookie 的情况:
    (1) 需要与服务器交互的小量数据(如会话 ID)
    (2) 需要设置过期时间的场景
    (3) 需要跨子域共享数据的场景

(9 Web Socket

WebSocket 提供了全双工、持久化的网络通信协议,适合实时应用。
特点:单个 TCP 连接、低延迟通信、服务器可以主动推送数据

3. 浏览器渲染页面

https://juejin.cn/post/7018358245785862151?searchId=20250528150844ACC48259DFD04AFDC5B6
(1.)主要过程:
- DOM树构建:渲染引擎解析HTML文档,将各个元素转换为DOM节点,从而生成DOM树
- CSSOM树构建:解析CSS,将其转化为CSS对象,组装构建成CSSOM树
- 渲染树构建:DOM树和CSSOM树构建完成后,浏览器会根据这两棵树构建除渲染树
- 页面布局:渲染树完成后,元素的位置关系以及样式确定,这时浏览器会计算出所以元素的大小和绝对位置
- 页面绘制
来源稀土掘金https://juejin.cn/user/3544481220801815

4. 重绘和重排

渲染树是动态构建的,DOM节点和CSS节点的改动都可能会造成渲染树的重新构建。也就造成页面的重排(回流)和重绘

  • 重排
    当DOM树中几何尺寸的变化(如元素大小,位置,布局方式等),这时渲染树里有改动的节点和受影响的节点都要重新计算。会导致要重新经历页面渲染的整个流程,所以开销很大。

以下操作都会导致页面重排:

页面首次渲染; 浏览器窗口大小发生变化; 元素的内容发生变化; 元素的尺寸或者位置发生变化; 元素的字体大小发生变化; 激活CSS伪类;
查询某些属性或者调用某些方法; 添加或者删除可见的DOM元素

  • 重绘
    当对DOM修改导致样式的变化(如颜色,背景色),则无需重新计算,直接为该元素进行绘制。重绘就是对元素绘制属性的修改。
    相较于重排,省去了布局和分层阶段,所以执行效率相对会高。

下面这些属性会导致重绘:

color、background 相关属性:background-color、background-image 等; outline
相关属性:outline-color、outline-width 、text-decoration;
border-radius、visibility、box-shadow。

注意:当触发重排,一定会触发重绘;但重绘不一定引发重排

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/news/907493.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Dolphin文档解析从理论到实践——保姆级教程

论文&#xff1a;https://arxiv.org/abs/2505.14059 代码&#xff1a;github.com/bytedance/Dolphin 2025年5月&#xff0c;字节开源了文档解析Dolphin&#xff0c;让文档解析效率提升83%。本文将深入解析字节跳动最新开源的Dolphin模型&#xff0c;先看理论再实战体验。 现实…

Web3怎么本地测试连接以太坊?

ETHEREUM_RPC_URLhttps://sepolia.infura.io/v3/你的_INFURA_API_KEY 如果你没有 Infura Key&#xff0c;注册 Infura 或 Alchemy&#xff0c;拿一个免费测试网节点就行&#xff1a; Infura&#xff1a;https://infura.io Alchemy&#xff1a;Alchemy - the web3 developme…

深化生态协同,宁盾身份域管完成与拓波软件兼容互认证

在信创产业蓬勃发展的浪潮下&#xff0c;行业生态的兼容适配决定了信创产品是否好用。近日&#xff0c;宁盾身份域管与拓波软件 TurboEX 邮件系统完成兼容互认证。测试结果显示宁盾身份域管&#xff08;信创版&#xff09;与 TurboEX 邮件服务器软件相互良好兼容&#xff0c;运…

HDFS存储原理与MapReduce计算模型

HDFS存储原理 1. 架构设计 主从架构&#xff1a;包含一个NameNode&#xff08;主节点&#xff09;和多个DataNode&#xff08;从节点&#xff09;。 NameNode&#xff1a;管理元数据&#xff08;文件目录结构、文件块映射、块位置信息&#xff09;&#xff0c;不存储实际数据…

Function calling的过程

文章目录 逐段讲清 **LLM Function Calling&#xff08;函数调用&#xff09;** 的典型链路。1. 角色与概念 | Actors & Concepts2. 全流程时序 | End-to-End Sequence3. 关键细节 | Key Implementation Notes4. 最小可用示例&#xff08;伪代码&#xff09; | Minimal Exa…

GlobalExceptionHandler 自定义异常类 + 处理validation的异常

在 Spring Boot 项目中&#xff0c;​自定义异常通常用于处理特定的业务逻辑错误&#xff0c;并结合全局异常处理器&#xff08;ControllerAdvice&#xff09;统一返回结构化的错误信息。 一.全局异常处理器&#xff1a; 1. 自定义异常类​ 定义一个继承自 RuntimeExceptio…

软件测试过程中如何定位BUG

在软件测试过程中&#xff0c;定位BUG是确保软件质量的关键环节。有效的BUG定位不仅能帮助开发人员快速修复问题&#xff0c;还能提升整个软件项目的效率。以下是软件测试中定位BUG的系统性方法和策略&#xff1a; 一、复现BUG 步骤&#xff1a; 收集信息&#xff1a;记录BUG…

如何优化Elasticsearch的搜索性能?

优化 Elasticsearch 的搜索性能需要从索引设计、查询优化、硬件配置和集群调优等多方面入手。以下是系统化的优化策略和实操建议: 一、索引设计优化 1. 合理设置分片数 分片大小:单个分片建议 10-50GB(超过50GB会影响查询性能)。分片数量: 总分片数 ≤ 节点数 1000(避免…

台式电脑CPU天梯图_2025年台式电脑CPU天梯图

CPU的选择绝对是重中之重,它关乎了一台电脑性能好坏。相信不少用户,在挑选CPU的时候不知道谁强谁弱,尤其是intel和AMD两款CPU之间。下面通过2025年台式电脑CPU天梯图来了解下这两款cpu. 2025年台式电脑CPU天梯图 2025年台式电脑CPU天梯图包含了老旧型号以及12代、13代、14代…

HarmonyOS_ArkTs_API(1)

HarmonyOS_ArkTs_API(1) 概述 此API服务模块是独自开发的应用程序的核心骨架&#xff0c;提供了鸿蒙OS ArkTS客户端组件和Java Spring Boot后端之间的强大通信接口。该模块采用清晰的架构方法处理所有HTTP请求、响应解析和错误处理&#xff0c;确保系统各部分间通信的一致性和…

matlab雷达定位仿真

一、边扫描边跟踪雷达仿真 边扫描边跟踪&#xff08;BISTAR&#xff09;雷达仿真是一种实时雷达信号处理的技术&#xff0c;用于模拟雷达系统的操作过程&#xff0c;特别是那些具备连续扫描能力的雷达。它的基本原理和流程可以分为以下几个步骤&#xff1a; &#xff08;1&…

互斥锁、自旋锁、读写锁、悲观锁、乐观锁的应用场景

一&#xff1a;并发 1.1MySQL并发事务访问相同记录 &#xff08;1&#xff09;读-读 不影响 &#xff08;2&#xff09;写-写 写的数据需要一个一个来&#xff0c;排队执行 &#xff08;3&#xff09;读-写 两次读…

KEYSIGHT N9320B是德科技N9320B频谱分析仪

KEYSIGHT N9320B是德科技N9320B频谱分析仪 附加功能&#xff1a; 频率范围&#xff1a;9 kHz 至 3 GHz 分辨率带宽&#xff1a;10 Hz 至 1 MHz DANL&#xff1a;-130 dBm&#xff0c;-148 dBm&#xff0c;带可选前置放大器 整体幅度精度&#xff1a;<1.5 dB 最小非零扫…

零基础开始的网工之路第十四天------Linux程序管理

目录 一、Linux程序与进程 1、程序,进程,线程的概念 2、程序和进程的区别 3、进程和线程的区别 二、Linux进程基础(生命周期) 1、进程生命周期 2、父子进程的关系 三、程序管理 1、常见的软件包类型 四、Linux操作系统启动流程详解 1、概述 2、启动流程核心阶段 1…

群辉(synology)NAS老机器连接出现网页端可以进入,但是本地访问输入一样的账号密码是出现错误时解决方案

群辉&#xff08;synology&#xff09;NAS老机器连接出现网页端可以进入&#xff0c;但是本地访问输入一样的账号密码是出现错误时解决方案 老机器 装的win7 系统 登入后端网页端的时候正常&#xff0c;但是本地访问登入时输入登入网页端一样的密码时候出现问题解决方案 1.登…

单例模式的隐秘危机

引言 单例模式作为设计模式中的基石&#xff0c;广泛应用于配置管理、线程池、缓存系统等关键场景。然而&#xff0c;许多开发者误以为“私有构造函数”足以保障其唯一性&#xff0c;却忽视了反射机制、对象克隆、序列化反序列化这三把“隐形利刃”——它们能绕过常规防御&…

DMBOK对比知识点对比(3)

1.数据仓库建设方法(Inmon、Kimball) 数据仓库建设方法(Inmon、Kimball)P293方法

Python+VR:如何让虚拟世界更懂你?——用户行为分析的实践

友友们好! 我是Echo_Wish,我的的新专栏《Python进阶》以及《Python!实战!》正式启动啦!这是专为那些渴望提升Python技能的朋友们量身打造的专栏,无论你是已经有一定基础的开发者,还是希望深入挖掘Python潜力的爱好者,这里都将是你不可错过的宝藏。 在这个专栏中,你将会…

游戏引擎学习第311天:支持手动排序

仓库: https://gitee.com/mrxiao_com/2d_game_7(已满) 新仓库: https://gitee.com/mrxiao_com/2d_game_8 回顾并为今天的内容定下基调 我们接下来要继续完成之前开始的工作&#xff0c;上周五开始的部分内容&#xff0c;虽然当时对最终效果还不太确定&#xff0c;但现在主要任…

数据结构第2章绪论 (竟成)

第 2 章 绪论 本章主要介绍数据结构相关的一些基本概念&#xff0c;是后续章节的基础。我们也将 408 考试大纲中&#xff0c;关于数据结构部分的考查目标罗列在这里&#xff0c;供各位考生参考&#xff1a; 1.掌握数据结构的基本概念、基本原理和基本方法。 2.掌握数据的逻辑结…