成人久久电影_日韩在线|中文_一区二区免费_国产91网站在线观看免费

整合營銷服務商

電腦端+手機端+微信端=數據同步管理

免費咨詢熱線:

瀏覽器架構的溫故知新

響應分析ーー瀏覽器從響應中分析 HTML 數據。

DOM 樹創建ーー從解析的 HTML 構建文檔對象模型(DOM)樹。

樣式表解析ーー解析樣式表,將呈現數據鏈接到 DOM 節點。

執行ーー執行 代碼,修改 DOM 。

頁面渲染ーー使用 DOM 和樣式數據顯示網頁。

3.1 HTML 解析

瀏覽器一個字符一個字符地讀取 HTML,標識元素、屬性和文本,然后構建表示網頁結構的 DOM 樹,并確保正確顯示 HTML 代碼。

3.2 CSS 對象模型

CSS 對象模型表達了應用于 HTML 元素的樣式,類似于 DOM 樹的結構化層次結構,并考慮了樣式的特殊性和級聯性,允許訪問、操作和計算樣式。

3.3 布局管理器

布局管理器結合 DOM 和 CSS 對象模型形成渲染樹,根據內容、填充等確定Box的尺寸,使用各種方法構建具體位置。同時,使用堆疊上下文和 Z 索引處理重疊元素,使用批處理等技術來優化布局變更。最后,在屏幕上繪制元素,在用戶交互期間不斷更新。

4 插件機制

當使用插件時,瀏覽器的操作比普通網頁還要簡單。渲染過程負責運行網頁,打開頁面時,.js被加載并注入到網頁環境中,操作類似于 ,操作 DOM 樹并改變顯示。GPU 進程支持渲染插件接口的硬件功能,網絡進程管理插件中的外部資源請求,例如,插件依賴于外部 的JS 資源。同時,存儲進程為插件提供了本地存儲功能,使用chrome.storage.local在chrome擴展中本地存儲和檢索數據。瀏覽器進程起到了橋梁的作用,促進了 Page和.js之間的通信。

4.1 插件的發展歷程

插件機制的發展過程如下:

總體而言,Chrome 插件(也被稱為擴展)已經經歷了3個主要版本的版本開發: V1、 V2和 V3。

V1 (MV1)是 Chrome 擴展清單的初始版本,已經被放棄。 V2 (MV2)是當前 Chrome 擴展中廣泛使用的主流版本,它提供了一個健壯的框架,用于構建具有增強瀏覽器功能的特性和功能的擴展。 V3是最新的版本,正在逐步取代 MV2。引入 MV3是為了解決安全性和性能方面的問題,它強化了更強的安全措施,并促進了擴展開發中的更好性能。從 Chrome 127開始(2024年6月) ,谷歌開始在預穩定版本的 Chrome 中禁用 V2擴展,鼓勵開發者轉向 MV3。

4.2 的 功能特點與版本遷移

V2 的功能特性:

V3 的功能特性:

瀏覽器插件讀寫數據庫_插件瀏覽庫器讀寫數據在哪_插件瀏覽庫器讀寫數據錯誤

V3代表了從 V1和 V2的重大轉變,受到 Chrome 致力于提高隱私、安全性和擴展的整體性能的驅動。與之前的版本不同, V3優先考慮資源利用率,解決了人們對 Chrome 歷史性的高資源利用率的擔憂。其核心目標是通過擴展來限制系統資源消耗,以優化瀏覽器性能。在施加額外限制的同時, V3引入了顯著的好處。 功能允許擴展操作,而無需一直駐留在后臺。這樣可以回收擴展資源,有效地減少總體瀏覽器開銷。對規則計算的限制作為一種控制機制,確保單個擴展不會過度消耗資源。這些改變共同促進了 Chrome 瀏覽器更加流暢的體驗,符合用戶對提高瀏覽器效率的期望。

在從V2遷移到V3的時候,由于缺少用于配置頁面背景的 . html,與 V2版本不同的是,windows 對象上的 不再適用于 . html 來構造 AJAX 請求。相反,必須利用提取方法來獲取接口數據。

另外,由于service workers 的生命周期很短,并且在非活動期間終止,因此他們在整個插件生命周期中偶爾啟動、運行和終止,從而引入不穩定性。在 MV2中,全局變量被用來直接存儲數據。為了適應這種情況,需要對 .js 中的邏輯進行修改,以提高穩定性和功能性。而且,從 API 過渡到 API 需要大量的代碼重構。

4.3 Chrome 插件的主要構成4.3.1 文件

.json 文件對于位于根目錄中的 Chrome 插件非常重要。它用于配置所有插件設置,其基本參數為 Manif_ version、 name 和 version。

V2 的一個示例如下:

{
"manifest_version": 2,
// Plugin name
"name": "...",
// Plugin version
"version": "1.0.0",
// Plugin description
"description": "...",
"icons": {
"16": "img/icon16.png",
"48": "img/icon48.png",
"128": "img/icon128.png"
},
// Persistent background JS or background page
"background": {
"scripts": ["js/background.js"]
},
// Browser icon settings :browser_action, page_action, app
"browser_action": {
"default_icon": "img/icon.png",
"default_title": "...",
"default_popup": "popup.html"
},
// Icon displayed only when specific pages are open
"page_action": {
"default_icon": "img/icon.png",
"default_title": "...",
"default_popup": "popup.html"
},
// JS directly injected into pages
"content_scripts": [{
"matches": [""],
"js": ["js/content-script.js"],
"css": ["css/custom.css"],
// Code injection timing, default is document_idle
"run_at": "document_start"
}],
// Permissions requested
"permissions": [
"contextMenus", // Right-click menu
"tabs", // Tabs
"notifications", // Notifications
"webRequest", // Web requests
"webRequestBlocking",
"storage", // Plugin local storage
"https://*/*" // Websites accessible via executeScript or insertCSS
],
// List of plugin resources directly accessible by normal pages "web_accessible_resources": ["js/inject.js"],
"homepage_url": "...", // Plugin homepage
"chrome_url_overrides": { // Override browser default pages
"newtab": "newtab.html"
},
"options_ui": { // Plugin options page
"page": "options.html",
"chrome_style": true
},
"omnibox": { "keyword" : "..." }, // Register a keyword in the address bar for search suggestions, only one keyword can be set
"default_locale": "en", // Default language
"devtools_page": "devtools.html", // Devtools page entry, can only point to an HTML file "content_security_policy": "...", // Security policy
"web_accessible_resources": [ // Loadable resources
"RESOURCE_PATHS"
]
}

V3的一個示例如下:

{
"manifest_version": 3,
"name": "...",
"version": "1.0.0",
"description": "...",
"icons": {
"16": "img/icon16.png",
"48": "img/icon48.png",
"128": "img/icon128.png"
},
"background": {
"service_worker": "js/background.js"
},
"action": {
"default_icon": "img/icon.png",
"default_title": "...",
"default_popup": "popup.html"
},
"content_security_policy": {
"extension_pages": "...",
"sandbox": "..."
},
"web_accessible_resources": [
{
"resources": ["RESOURCE_PATHS"]
}
],
"permissions": [
"contextMenus",
"tabs",
"notifications",
"webRequest",
"webRequestBlocking",
"storage",
"https://*/*"
],
"web_accessible_resources": ["js/inject.js"],
"homepage_url": "...",
"chrome_url_overrides": {
"newtab": "newtab.html"
},
"options_ui": {
"page": "options.html",
"chrome_style": true
},
"omnibox": {
"keyword": "..."
},
"default_locale": "zh_CN",
"devtools_page": "devtools.html",
"content_security_policy": "...",
"web_accessible_resources": ["RESOURCE_PATHS"]
}

4.3.2 內容腳本

Chrome 插件中的內容腳本通過配置將 JS 和 CSS 注入到指定的頁面中。它們與原始頁面共享 DOM,但不與 JS 共享。訪問頁面 JS 變量需要注入 JS。內容腳本無法訪問大多數 Chrome API,除了:

* chrome.

* chrome.i18n

* chrome.runtime

* chrome.storage

對于其他 API,需要與后臺或service worker進行通信。

4.3.3 后臺腳本

瀏覽器插件讀寫數據庫_插件瀏覽庫器讀寫數據錯誤_插件瀏覽庫器讀寫數據在哪

Chrome 擴展中的后臺腳本具有最長的生命周期,并且在瀏覽器打開時連續運行。它擁有廣泛的權限,允許訪問大多數 Chrome 擴展 API 和跨源請求,而不受 CORS 限制。在 V3中,后臺頁被具有較短生命周期和基于事件的執行的服務工作者所替代,這使得它們不適合存儲全局變量。

4.3.4 彈窗

彈出窗口是一個小窗口的網頁,出現在點擊右上角的圖標。當用戶在網頁之外進行互動時,它會迅速關閉。通常用于臨時交互,其權限級別類似于背景,但具有較短的生命周期。

4.3.5 注入腳本

開發者在 Chrome 插件開發過程中創造了“注入腳本”這個術語。它表示通過 DOM 操作注入到頁面中的 。內容腳本雖然能夠操作 DOM,但由于訪問限制,DOM 不能直接調用它。這種限制在事件綁定中是顯而易見的。為了滿足在 Web 頁面中添加一個按鈕來觸發插件的常見需求,大家采用了插入腳本。

4.4 Chrome 插件的通信機制

在 Chrome 插件中,通信依賴于五種類型的腳本:

注入腳本,表示動態注入到網頁中的腳本,通常依賴于 window.。

內容腳本,在特定網頁上下文中執行的腳本,利用 window.、 chrome.runtime. 和 chrome.runtime.connect 進行腳本間通信。

彈窗腳本,與插件的彈出式界面相關聯,通常使用 chrome.tabs. 和 chrome.tabs.connect 進行通信。

后臺腳本,在后臺獨立運行的腳本,涉及多種方法,例如 chrome.tabs.、 chrome.tabs.connect、 chrome.tension. 和 chrome.tension.getView。

,開發工具的附加功能, 使用諸如 chrome...eval 和 chrome.runtime. 之類的特定 API 進行交互。

每個腳本擁有不同的權限,強調了它們之間通信的重要性。這種交互對于啟用廣泛的插件功能非常重要。

5. 一句話小結

溫故而知新,瀏覽器架構作為現代互聯網的基石,歷經多次迭代與創新,始終承載著用戶與網頁內容之間的橋梁作用。回顧其發展歷程,從早期的單一渲染引擎到如今的多進程、多線程架構,每一次變革都帶來了更為流暢、安全的瀏覽體驗。展望未來,瀏覽器架構將繼續深化其性能優化與安全性提升,為用戶帶來更加出色的網絡瀏覽體驗。

【關聯閱讀】


成人久久电影_日韩在线|中文_一区二区免费_国产91网站在线观看免费

          9000px;">

                  婷婷成人激情在线网| 中文字幕一区视频| 2021中文字幕一区亚洲| 亚洲韩国一区二区三区| 成a人片亚洲日本久久| 欧美va亚洲va香蕉在线| 日韩精品视频网站| 国内一区二区视频| 久久久久99精品国产片| 国产精品一卡二卡在线观看| 久久影院午夜论| 成人夜色视频网站在线观看| 国产亚洲欧美中文| 99热在这里有精品免费| 亚洲色图欧美在线| 欧美日韩国产综合草草| 日本成人在线电影网| 精品理论电影在线| 国产成人精品三级| 亚洲伦在线观看| 精品视频免费看| 亚洲美女在线一区| 日韩视频免费观看高清完整版在线观看| 亚洲超碰精品一区二区| 欧美日韩一区二区不卡| 久久精品国产精品青草| 国产亚洲一区二区三区四区| 色婷婷综合久久久久中文一区二区 | 国产一级精品在线| 综合久久久久综合| 欧美精品日韩精品| 亚洲成人av电影| 337p粉嫩大胆色噜噜噜噜亚洲| 福利一区在线观看| 亚洲高清中文字幕| 51午夜精品国产| 成人午夜精品在线| 国产精品欧美久久久久一区二区| 在线亚洲+欧美+日本专区| 久久成人麻豆午夜电影| 亚洲免费高清视频在线| 精品久久久久久久久久久久久久久| 成人精品视频一区| 亚洲欧美国产77777| 欧美一区二区三区不卡| 99精品久久免费看蜜臀剧情介绍| 日韩国产欧美在线观看| 一区二区三区自拍| 日本一区免费视频| 久久久青草青青国产亚洲免观| 加勒比av一区二区| 午夜精品久久久久久久久久久| 久久亚洲春色中文字幕久久久| 欧美视频一区二区三区在线观看 | 日本伊人色综合网| 一区二区三区中文字幕精品精品 | 亚洲二区在线视频| 国产精品网曝门| 久久久亚洲国产美女国产盗摄| 欧美丰满少妇xxxxx高潮对白 | 成人精品小蝌蚪| 久久精品av麻豆的观看方式| 日韩电影在线免费| 亚洲精品日韩专区silk| 久久精品一区四区| 久久久精品影视| 日韩欧美高清一区| 欧美唯美清纯偷拍| 色哟哟国产精品| 国产一区二区三区最好精华液| 麻豆久久久久久久| 捆绑调教一区二区三区| 日本在线观看不卡视频| 另类人妖一区二区av| 日本不卡一区二区| 日本视频免费一区| 日产国产欧美视频一区精品| 奇米在线7777在线精品| 日韩黄色免费电影| 久久爱另类一区二区小说| 亚洲精品高清在线观看| 一区二区三区免费看视频| 337p亚洲精品色噜噜噜| 日韩欧美在线123| 久久久久亚洲蜜桃| 国产精品国产三级国产aⅴ入口| 亚洲日本丝袜连裤袜办公室| 国产精品二区一区二区aⅴ污介绍| 日本一区二区成人在线| 国产精品精品国产色婷婷| 国产精品欧美一区喷水| 亚洲在线观看免费视频| 五月天亚洲精品| 国产精品中文字幕欧美| 激情综合色播激情啊| 国产麻豆日韩欧美久久| 一本久久a久久精品亚洲| 一本色道a无线码一区v| 欧美tickling挠脚心丨vk| 国产三级精品在线| 正在播放一区二区| 中文字幕免费不卡| 亚洲欧美日韩中文字幕一区二区三区 | 色综合天天综合网天天狠天天 | 欧美aⅴ一区二区三区视频| 日本大胆欧美人术艺术动态| 高清国产一区二区| 日韩欧美资源站| 在线亚洲免费视频| 欧美国产综合色视频| 成人av在线一区二区| 欧美精品一区二区在线播放| 日韩高清不卡一区二区| 欧美老肥妇做.爰bbww| 亚洲免费观看高清完整版在线观看 | 欧美日本一区二区| 亚洲一区二区成人在线观看| 91玉足脚交白嫩脚丫在线播放| 国产精品网站在线观看| 成人av动漫网站| 中文一区在线播放| 成人h动漫精品| 国产精品第四页| 91视频精品在这里| 一区二区三区四区高清精品免费观看| 99久久久国产精品| 日韩理论片一区二区| 色狠狠一区二区| 日韩va亚洲va欧美va久久| 在线成人小视频| 免费av网站大全久久| 久久久久综合网| 色综合久久久久网| 日韩福利视频网| 久久久精品tv| www.亚洲激情.com| 亚洲在线一区二区三区| 日韩欧美在线网站| 懂色一区二区三区免费观看| 亚洲久草在线视频| 日韩一卡二卡三卡国产欧美| 国产精品18久久久久久久网站| 中文字幕精品三区| 欧美日韩一区二区三区在线| 强制捆绑调教一区二区| 亚洲国产高清aⅴ视频| 欧美亚洲国产怡红院影院| 奇米综合一区二区三区精品视频| 国产亚洲午夜高清国产拍精品| 色哦色哦哦色天天综合| 久久se精品一区精品二区| 亚洲欧美偷拍三级| 久久一区二区三区四区| 欧美视频你懂的| 成人avav在线| 免费成人你懂的| 一区二区欧美视频| 久久久亚洲精华液精华液精华液| 97久久精品人人做人人爽50路| 日本视频中文字幕一区二区三区| 国产精品国产三级国产a| 日韩精品中文字幕在线不卡尤物 | 亚洲高清中文字幕| 国产精品美日韩| 日韩一区二区三区四区五区六区| 国产精品一二三| 日韩国产精品久久久久久亚洲| 亚洲品质自拍视频| 2017欧美狠狠色| 欧美日本免费一区二区三区| 成人一区二区三区视频| 久久激五月天综合精品| 亚洲成人久久影院| 亚洲女同女同女同女同女同69| 久久人人超碰精品| 日韩精品一区二区三区三区免费 | 亚洲日本在线a| 国产精品视频九色porn| 国产亚洲欧美中文| 26uuu亚洲综合色| 欧美videos大乳护士334| 日韩亚洲欧美在线观看| 欧美日韩一区在线| 欧美亚洲国产怡红院影院| 99精品久久久久久| 成人精品鲁一区一区二区| 国产一区二区三区视频在线播放| 免费人成黄页网站在线一区二区| 午夜婷婷国产麻豆精品| 亚洲成人精品影院| 亚洲成av人片在线观看无码| 亚洲国产日日夜夜| 亚洲国产综合人成综合网站| 亚洲成人在线观看视频| 亚洲综合自拍偷拍| 亚洲超碰精品一区二区| 日本 国产 欧美色综合| 国产一区二区在线影院| 成人精品一区二区三区中文字幕 | 琪琪一区二区三区|