天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

瀏覽器的渲染原理簡(jiǎn)介

  看到這個(gè)標(biāo)題大家一定會(huì)想到這篇神文《How Browsers Work》,這篇文章把瀏覽器的很多細(xì)節(jié)講得很細(xì),而且也被翻譯成了中文。為什么我還想寫一篇呢?因?yàn)閮蓚€(gè)原因,

  1)這篇文章太長(zhǎng)了,閱讀成本太大,不能一口氣讀完。

  2)花了大力氣讀了這篇文章后可以了解很多,但似乎對(duì)工作沒什么幫助。

  所以,我準(zhǔn)備寫下這篇文章來解決上述兩個(gè)問題。希望你能在上班途中,或是坐馬桶時(shí)就能讀完,并能從中學(xué)會(huì)一些能用在工作上的東西。

  瀏覽器工作大流程

  廢話少說,先來看個(gè)圖:

  從上面這個(gè)圖中,我們可以看到那么幾個(gè)事:

  1)瀏覽器會(huì)解析三個(gè)東西:

  • 一個(gè)是 HTML/SVG/XHTML,事實(shí)上,Webkit 有三個(gè) C++ 的類對(duì)應(yīng)這三類文檔。解析這三種文件會(huì)產(chǎn)生一個(gè) DOM Tree。
  • CSS,解析 CSS 會(huì)產(chǎn)生 CSS 規(guī)則樹。
  • Javascript,腳本,主要是通過 DOM API 和 CSSOM API 來操作 DOM Tree 和 CSS Rule Tree.

  2)解析完成后,瀏覽器引擎會(huì)通過 DOM Tree 和 CSS Rule Tree 來構(gòu)造 Rendering Tree。注意:

  • Rendering Tree 渲染樹并不等同于 DOM 樹,因?yàn)橐恍┫?Header 或 display:none 的東西就沒必要放在渲染樹中了。
  • CSS 的 Rule Tree 主要是為了完成匹配并把 CSS Rule 附加上 Rendering Tree 上的每個(gè) Element。也就是 DOM 結(jié)點(diǎn)。也就是所謂的 Frame。
  • 然后,計(jì)算每個(gè) Frame(也就是每個(gè) Element)的位置,這又叫 layout 和 reflow 過程。

  3)最后通過調(diào)用操作系統(tǒng) Native GUI 的 API 繪制。

  DOM 解析

  HTML 的 DOM Tree 解析如下:

<html><head>  <title>Web page parsing</title></head><body>  <div>  <h1>Web page parsing</h1>  <p>This is an example Web page.</p>  </div></body></html>

it知識(shí)庫瀏覽器的渲染原理簡(jiǎn)介,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 亚洲影院在线播放 | 国产99久久久国产精品成人 | 精品在线观看一区 | 欧美精品高潮呻吟AV久久 | 国产亚洲一区在线 | 午夜国产精品视频 | 蜜桃臀无码内射一区二区三区 | 在线看片av以及毛片 | CHRISTMAS农村夫妻HO | 跳蛋按摩棒玉势PLAY高H | 午夜快车神马影视 | 羞羞答答的免费视频在线观看 | 中文字幕在线不卡精品视频99 | 性色香蕉AV久久久天天网 | 99热久久久无码国产精品性麻豆 | 亚洲精品高清视频 | 亚洲国产精品久久人人爱 | 月夜直播免费看 | 国产午夜精品一区二区三区 | 好吊妞国产欧美日韩视频 | 免费在线观看黄色网址 | 国产乱码伦人偷精品视频 | 中国农村真实bbwbbwbbw | 老湿司午夜爽爽影院榴莲视频 | 97人视频国产在线观看 | 日本G奶乳液汁 | 人妻免费久久久久久久了 | 十分钟免费看完整视频 | 免费国产足恋网站 | 国产午夜精品一区理论片飘花 | 97视频在线免费 | 麻豆高清免费国产一区 | 91亚洲精品 | 中文字幕无码他人妻味 | 女人被弄到高潮叫床免 | 亚洲国产中文字幕新在线 | 69精品国产人妻蜜桃国产毛片 | 男人就爱吃这套下载 | 娇小8一12xxxx第一次 | 内地同志男16china16 | 欧美狂野乱码一二三四区 |