瀏覽器面試題及詳細答案 88道(12-22)

前后端面試題》專欄集合了前后端各個知識模塊的面試題,包括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…