前后端面试题》专栏集合了前后端各个知识模块的面试题,包括html,javascript,css,vue,react,java,Openlayers,leaflet,cesium,mapboxGL,threejs,nodejs,mangoDB,MySQL,Linux… 。

前后端面试题-专栏总目录

在这里插入图片描述

文章目录

  • 一、本文面试题目录
      • 12. 为什么利用多个域名存储网站资源更有效?
      • 13. 如何理解网页标准及标准制定机构的重要性?
      • 14. cookies、sessionStorage 和 localStorage 的区别是什么?
      • 15. 渲染过程中遇到 CSS 文件会如何处理?
      • 16. 你对浏览器内核的理解是什么?
      • 17. 常见浏览器内核的优缺点分别是什么?
      • 18. 渲染过程中遇到 JS 文件会如何处理?
      • 19. 什么是文档的预解析?
      • 20. 渲染页面时常见哪些不良现象?
      • 21. 如何优化关键渲染路径?
      • 22. 什么是重绘和回流?如何减少回流?

一、本文面试题目录

12. 为什么利用多个域名存储网站资源更有效?

  • 原理说明
    • 突破浏览器并发连接限制:多数浏览器对同一域名的并发请求数有限制(如Chrome默认6个),使用多个域名可让浏览器同时加载更多资源,减少等待时间。
    • 分流缓存压力:不同域名的资源可分别缓存,避免单一域名下缓存空间不足或资源混淆。
    • CDN优化:不同域名可对应不同CDN节点,根据资源类型(如图片、脚本)选择更优的CDN服务,提升加载速度。
    • 规避Cookie影响:静态资源(如图片、CSS)若放在带Cookie的域名下,请求会携带不必要的Cookie,增加数据传输量;独立域名可避免此问题。
  • 示例场景
    一个电商网站将主域名设为www.example.com(存放HTML和核心脚本),图片存于img.example.com,CSS和JS存于static.example.com,这样浏览器可同时从3个域名加载资源,大幅提升页面加载效率。

13. 如何理解网页标准及标准制定机构的重要性?

  • 原理说明
    • 网页标准:是一系列规范(如HTML、CSS、JavaScript语法及行为)的集合,确保网页在不同浏览器、设备上表现一致,提升兼容性和可维护性。
    • 标准制定机构的作用
      • W3C(World Wide Web Consortium):制定HTML、CSS等核心标准,推动Web技术规范化。
      • ECMA International:制定JavaScript(ECMAScript)标准,确保脚本语言的一致性和演进。
      • IETF(Internet Engineering Task Force):制定HTTP等网络传输标准,保障数据交互的稳定性。
    • 重要性
      • 降低开发者学习和维护成本,无需为不同浏览器编写差异化代码。
      • 促进Web技术的统一演进,推动创新(如PWA、WebGL等新技术基于标准发展)。
      • 保障用户体验一致性,无论使用Chrome、Firefox还是Safari,网页功能和表现基本一致。
  • 示例
    HTML5标准由W3C制定后,<video>标签可在所有现代浏览器中直接播放视频,无需依赖插件(如Flash),体现了标准对技术统一和用户体验的提升。

14. cookies、sessionStorage 和 localStorage 的区别是什么?

特性cookiessessionStoragelocalStorage
存储大小约4KB约5-10MB约5-10MB
有效期可设置过期时间(持久化)或会话级(关闭浏览器失效)会话级(关闭标签页/浏览器失效)持久化(除非手动删除)
作用域同域名(包括子域名,可配置)仅当前标签页(同域名不同标签页不共享)同域名下所有标签页共享
与服务器交互每次HTTP请求自动携带不与服务器交互不与服务器交互
API易用性需要手动封装(document.cookie简洁API(setItem/getItem同sessionStorage
典型用途身份认证、记住登录状态临时表单数据、页面状态保存长期数据存储(如用户偏好设置)
  • 示例代码
    // cookies
    document.cookie = "username=John; expires=Thu, 18 Dec 2025 12:00:00 UTC; path=/";// sessionStorage
    sessionStorage.setItem("tempData", "hello");
    console.log(sessionStorage.getItem("tempData")); // "hello"// localStorage
    localStorage.setItem("theme", "dark");
    console.log(localStorage.getItem("theme")); // "dark"
    

15. 渲染过程中遇到 CSS 文件会如何处理?

  • 原理说明
    • CSS文件会阻塞渲染树构建,但不会阻塞HTML解析(浏览器会并行下载CSS和解析HTML)。
    • 浏览器解析HTML生成DOM树,同时解析CSS生成CSSOM(CSS对象模型),两者结合生成渲染树(Render Tree),再进行布局(Layout)和绘制(Paint)。
    • 若CSS未加载完成,渲染树无法生成,页面会呈现空白(或仅显示已解析的未样式化内容),直到CSSOM构建完成。
  • 关键机制
    • CSS阻塞渲染:确保页面按样式规则正确显示,避免“无样式内容闪烁(FOUC)”。
    • 媒体查询优化:对media="print"等非当前场景的CSS,浏览器会下载但不阻塞渲染。
  • 示例场景
    若页面引入一个大型外部CSS文件,HTML解析完成后会等待CSS下载并解析,此时DOM已就绪但渲染树未生成,页面暂时空白,直到CSSOM构建完成后才会显示样式化内容。

16. 你对浏览器内核的理解是什么?

  • 原理说明
    • 浏览器内核(Rendering Engine)是浏览器的核心组件,负责解析和渲染网页内容,决定页面的显示方式和性能。
    • 核心功能:
      • 解析HTML/XHTML生成DOM树。
      • 解析CSS生成CSSOM树。
      • 结合DOM和CSSOM生成渲染树。
      • 执行布局(Layout)计算元素位置和大小。
      • 绘制(Painting)将元素渲染到屏幕。
      • 部分内核还集成JavaScript引擎(如WebKit的JavaScriptCore、Blink的V8)。
    • 不同内核的实现差异会导致网页在不同浏览器中的兼容性问题(如CSS属性支持、渲染精度等)。
  • 常见内核
    Blink(Chrome、Edge)、WebKit(Safari)、Gecko(Firefox)、Trident(旧版IE)。

17. 常见浏览器内核的优缺点分别是什么?

内核代表浏览器优点缺点
BlinkChrome、Edge渲染速度快,对新特性支持积极,开源活跃对部分旧标准兼容性一般,资源占用较高
WebKitSafari、旧版Chrome渲染流畅,与macOS/iOS生态整合好新特性支持节奏较慢,部分API实现独特
GeckoFirefox标准兼容性强,隐私保护功能完善渲染性能略逊于Blink,市场份额较低
Trident旧版IE(IE11及以下)对旧网站兼容性好(如ActiveX)不支持现代标准(如ES6、CSS3),已被淘汰

18. 渲染过程中遇到 JS 文件会如何处理?

  • 原理说明
    • JavaScript会阻塞HTML解析和渲染,因为JS可修改DOM(如document.write)和CSSOM(如document.styleSheets),浏览器需暂停解析等待JS执行完成。
    • 关键机制:
      • 默认阻塞:当HTML解析器遇到<script>标签时,会暂停解析,下载JS文件(若为外部脚本)并执行,完成后再继续解析HTML。
      • 预加载扫描器:浏览器会启动预加载扫描器,提前发现并下载JS、CSS等资源,减少阻塞时间。
      • async/defer属性:可改变JS的执行时机(见问题5),避免阻塞解析。
  • 示例代码
    <!-- 阻塞解析和渲染 -->
    <script src="app.js"></script><!-- 不阻塞解析,下载完成后立即执行(顺序不保证) -->
    <script src="lib.js" async></script><!-- 不阻塞解析,DOM就绪后按顺序执行 -->
    <script src="util.js" defer></script>
    

19. 什么是文档的预解析?

  • 原理说明
    • 文档预解析(Pre-parsing)是浏览器的优化机制,当HTML解析器被JS阻塞时,启动预解析器(Preloader)提前扫描后续HTML内容,发现并下载关键资源(如JS、CSS、图片等)。
    • 作用:减少资源加载等待时间,提升页面加载速度。
    • 预解析范围:仅扫描标签中的资源引用(如srchref),不执行解析或渲染操作。
  • 示例场景
    若页面中部有一个阻塞解析的JS文件,预解析器会提前扫描后续的<link rel="stylesheet"><img src>,在JS执行期间并行下载这些资源,避免JS执行完成后才开始下载,节省时间。

20. 渲染页面时常见哪些不良现象?

  • 常见现象及原因
    • 无样式内容闪烁(FOUC):CSS加载延迟,DOM先于CSSOM渲染,导致页面短暂显示无样式内容。
    • 布局偏移(CLS,Cumulative Layout Shift):元素大小或位置动态变化(如图片未设尺寸、字体加载延迟),导致页面布局突然偏移,影响用户体验。
    • 卡顿(Jank):JS执行时间过长或频繁触发回流/重绘,导致渲染帧率下降(低于60fps),页面滚动或动画不流畅。
    • 白屏/空白:HTML解析或关键资源(如JS、CSS)加载失败,导致页面无法渲染。
  • 示例
    图片未设置widthheight属性,加载完成后突然撑开容器,导致下方内容下移,产生布局偏移。

21. 如何优化关键渲染路径?

  • 原理说明
    关键渲染路径是浏览器将HTML、CSS、JS转换为屏幕像素的过程,优化目标是减少首次内容绘制(FCP)可交互时间(TTI)
  • 优化策略
    1. 精简HTML/CSS:移除冗余代码,压缩文件(如使用Gzip/Brotli)。
    2. 优先加载关键CSS:将首屏必需的CSS内联到<head>,非关键CSS异步加载(如media="print")。
    3. 优化JS执行
      • 延迟加载非关键JS(defer/async)。
      • 避免JS阻塞解析(将脚本放在</body>前或使用动态导入import())。
    4. 减少回流/重绘:合理使用will-changetransform等属性(见问题22)。
    5. 预连接/预加载
      <link rel="preconnect" href="https://cdn.example.com"> <!-- 预建立连接 -->
      <link rel="preload" href="critical.css" as="style"> <!-- 预加载关键资源 -->
      

22. 什么是重绘和回流?如何减少回流?

  • 重绘(Repaint)

    • 定义:元素样式(如colorbackground)改变但不影响布局时,浏览器重新绘制元素的过程。
    • 示例:div.style.color = "red";(仅颜色变化,位置和大小不变)。
  • 回流(Reflow,又称重排)

    • 定义:元素布局(如widthpositionfloat)改变时,浏览器重新计算元素位置和大小,并更新渲染树的过程。
    • 影响:回流代价高于重绘,频繁回流会导致页面卡顿。
    • 示例:div.style.width = "200px";(宽度变化,需重新计算布局)。
  • 减少回流的方法

    1. 批量修改样式:使用class一次性修改多个样式,而非逐个设置。
      .active { width: 200px; height: 100px; }
      
      element.classList.add("active"); // 一次回流
      
    2. 脱离文档流操作:通过display: none隐藏元素后修改样式,完成后恢复显示(仅触发2次回流)。
    3. 使用CSS触发合成层transformopacity等属性修改仅触发合成(Composite),不回流/重绘。
      element.style.transform = "translateX(100px)"; // 无回流
      
    4. 避免频繁访问布局属性:如offsetWidthscrollTop,浏览器会强制刷新渲染树,可缓存结果。
      const width = element.offsetWidth; // 触发回流
      // 多次使用width,避免重复访问
      element.style.width = width + 10 + "px";
      

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

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

相关文章

开发避坑指南(23):Tomcat高版本URL特殊字符限制问题解决方案(RFC 7230 RFC 3986)

异常信息 java.lang.IllegalArgumentException: 在请求目标中找到无效字符[/order/show?orderType01&orderTitle0xe50x8f0xa30xe50xb20xb80xe50x8a0xa80xe60x800x81&pageNum1 ]。有效字符在RFC 7230和RFC 3986中定义org.apache.coyote.http11.Http11InputBuffer.parse…

HTTPS的应用层协议

HTTPS的应用层协议 方案 5 - 非对称加密 对称加密 证书认证 在客户端和服务器刚一建⽴连接的时候, 服务器给客户端返回一个 证书&#xff0c;证书包含了之前服务端的公钥, 也包含了网站的身份信息. 客户端进行认证 当客户端获取到这个证书之后, 会对证书进行校验(防止证书是伪…

【SpringBoot】05 容器功能 - SpringBoot底层注解的应用与实战 - @Configuration + @Bean

文章目录前言一、创建两个组件二、使用传统方式源代码解释三、使用SpringBoot方法源代码解释四、查看是否添加到组件中查看自定义组件名配置类在容器中注册的是单实例组件配置类本身也是容器中的一个组件Configuration的proxyBeanMethods属性&#xff1a;代理bean的方法proxyBe…

c#联合Halcon进行OCR字符识别(含halcon-25.05 百度网盘)

1.下载安装halcon 通过网盘分享的文件&#xff1a;halcon-25.05.0.0-x64-win64 链接: https://pan.baidu.com/s/1XAx-8ZQM-ZHkgHIc-dhCYw 提取码: whek 2.c#环境配置 创建test_halcon_ocr项目 找到halcon的安装路径 我的&#xff1a; D:\halcon\HALCON-25.05-Progress\bin\x64…

丝杆支撑座怎样助力升降设备实现智能化?

丝杆支撑座作为传动系统中的关键支撑部件&#xff0c;凭借其高刚性、抗冲击及精准定位能力&#xff0c;广泛应用于重型机械与升降设备领域&#xff0c;为设备提供稳定可靠的轴向承载与径向支撑&#xff0c;确保高负荷工况下的安全运行。电梯 / 升降平台&#xff1a;液压电梯的辅…

Notta:高效智能的音频转文字工具

本文转载自&#xff1a;Notta&#xff1a;高效智能的音频转文字工具 - Hello123 ** 一、产品简介 Notta 是一款基于 AI 语音识别引擎的语音转文字工具&#xff0c;支持 58 种语言的转录和 42 种语言的翻译。用户可通过实时录音或上传音频 / 视频文件&#xff08;如 MP3、WAV …

Docker私有仓库创建及Docky存储与网络配置(小白的“升级打怪”成长之路)

目录 一、Docker私有仓库创建 1、在一台安装Docker私有仓库的主机上添加docker-compose 命令 2、安装docker-ce服务 3、Docker 镜像加速 4、安装Harbor仓库 5、使用脚本安装仓库 6、网站登陆 7、客户端使用Harbor仓库 二、Docky存储与网络配置 1、存储与网络 挂载主机…

谷歌ADK接入文件操作MCP

文章目录MCP基础概念文件操作服务器文件操作MCP接入谷歌ADK项目创建多轮对话代码MCP基础概念 MCP技术体系中&#xff0c;会将外部工具运行脚本称作服务器&#xff0c;而接入这些外部工具的大模型运行环境称作客户端。 一个客户端可以接入多个不同类型的服务器&#xff0c;但都…

高光谱技术的独特优势

高光谱技术凭借其‌纳米级连续光谱采集能力‌和‌图谱合一的探测模式‌&#xff0c;在多个领域展现出不可替代的独特优势&#xff1a;一、光谱维度&#xff1a;精细物质指纹识别‌纳米级连续光谱解析‌ 通过 ‌5-10nm带宽的数百个连续波段‌&#xff08;最高330个通道&#xff…

基于Vue+Element UI集成高德地图的完整实践指南

本次开发使用deepseek 简直如虎添翼得心应手 生成模拟数据、解决报错那真是嘎嘎地 在 Vue Element UI 项目中引入高德地图 具体实现步骤&#xff1a; 高德开放平台&#xff1a;注册账号 → 进入控制台 → 创建应用 → 获取 Web端(JS API)的Key https://lbs.amap.com/ 这里需要…

Day50--图论--98. 所有可达路径(卡码网),797. 所有可能的路径

Day50–图论–98. 所有可达路径&#xff08;卡码网&#xff09;&#xff0c;797. 所有可能的路径 刷今天的内容之前&#xff0c;要先去《代码随想录》网站&#xff0c;先看完&#xff1a;图论理论基础和深度优先搜索理论基础。做完之后可以看题解。有余力&#xff0c;把广度优先…

Python 异常捕获

一、获取未知错误try:# 相关处理逻辑 异常后面输出print(输入信息……) except Exception as e:print(未知错误,e)二、获取已知错误except 错误单词&#xff08;来源于错误信息的第一个单词&#xff09;多个已知错误使用 except XXXXX:try:# 相关处理逻辑 异常后面输出print…

RIOT、RT-Thread 和 FreeRTOS 是三种主流的实时操作系统

RIOT、RT-Thread 和 FreeRTOS 是三种主流的实时操作系统&#xff08;RTOS&#xff09;&#xff0c;专为嵌入式系统和物联网&#xff08;IoT&#xff09;设备设计。它们在架构、功能、生态和应用场景上有显著差异&#xff0c;以下是详细对比&#xff1a;1. 架构与设计理念特性RI…

【FAQ】Win11创建资源不足绕开微软账号登录

Win11安装资源限制 因为 Windows 11 有两项强制检测 VMware 8 默认没提供&#xff1a; TPM 2.0&#xff08;可信平台模块&#xff09;Secure Boot&#xff08;安全启动&#xff09; 一步到位解决办法&#xff08;官方兼容方式&#xff09; 关闭虚拟机电源编辑虚拟机设置 选项 →…

Docker使用----(安装_Windows版)

一、Docker Docker 镜像就像是一个软件包&#xff0c;里面包括了应用程序的代码、运行所需的库和工具、配置文件等等&#xff0c;所有这些都打包在一起&#xff0c;以确保应用程序在不同的计算机上运行时&#xff0c;都能保持一致性。 可以把 Docker 镜像想象成一个软件安装文件…

91、23种经典设计模式

设计模式是软件设计中反复出现的解决方案的模板&#xff0c;用于解决特定问题并提高代码的可维护性、可扩展性和可复用性。23种经典设计模式可分为创建型、结构型和行为型三大类&#xff0c;以下是具体分类及模式概述&#xff1a; 一、创建型模式&#xff08;5种&#xff09; 关…

Illustrator总监级AI魔法:一键让低清logo变矢量高清,彻底告别手动描摹!

在海外从事设计十几年&#xff0c;我敢说&#xff0c;每个设计师都经历过一种“史诗级”的折磨&#xff1a;客户发来一个像素低得感人、边缘模糊不清的JPG格式Logo&#xff0c;然后要求你把它用在巨幅海报或者高清视频上。这意味着什么&#xff1f;意味着我们要打开Illustrator…

各种 dp 刷题下

6.#8518 杰瑞征途 / 洛谷 P4072 征途 题意 Pine 开始了从 SSS 地到 TTT 地的征途。从 SSS 地到 TTT 地的路可以划分成 nnn 段&#xff0c;相邻两段路的分界点设有休息站。Pine 计划用 mmm 天到达 TTT 地。除第 mmm 天外&#xff0c;每一天晚上 Pine 都必须在休息站过夜。所以…

本地WSL部署接入 whisper + ollama qwen3:14b 总结字幕增加利用 Whisper 分段信息,全新 Prompt功能

1. 实现功能 M4-3: 智能后处理 - 停顿感知增强版 (终极版) 本脚本是 M4-3 的重大升级&#xff0c;引入了“停顿感知”能力&#xff1a; 利用 Whisper 分段信息: 将 Whisper 的 segments 间的自然停顿作为强信号 ([P]) 提供给 LLM。全新 Prompt: 设计了专门的 Prompt&#xff0c…

微算法科技(NASDAQ:MLGO)开发经典增强量子优化算法(CBQOA):开创组合优化新时代

近年来&#xff0c;量子计算在组合优化领域的应用日益受到关注&#xff0c;各类量子优化算法层出不穷。然而&#xff0c;由于现阶段量子硬件的局限性&#xff0c;如何充分利用已有的经典计算能力来增强量子优化算法的表现&#xff0c;成为当前研究的重要方向。基于此&#xff0…