<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                [TOC] ## 前言 網站系統,均由瀏覽器負責渲染顯示,用戶通過操作瀏覽器中網站視圖功能,js腳本響應,并向服務器發送請求,更新相應數據。 ## 1. 瀏覽器渲染 瀏覽器渲染流程: ![像素管道](https://img.kancloud.cn/d2/39/d239eca3d5d82b8ef39b331a22fbb1db_816x106.png) * JavaScript:js實現動畫效果、dom元素操作等 * Style:確定每個DOM元素應該應用什么CSS規則。 * Layout:計算DOM元素大小及確定位置。當某一個dom元素位置發送變化引起其他元素發生變化,這個過程叫`reflow` * Paint:在多個圖層上繪制DOM元素的文字、顏色、圖像等。當只修改顏色、字體等不影響它周圍或內部布局的屬性,則會引起瀏覽器`repaint` * Composite:按正確順序合并圖層并顯示到屏幕上 ## 2. 瀏覽器內存 ### 2.1 內存生命周期 分配內存 -> 使用內存 -> 釋放內存 ### 2.2 js內存使用周期 * 分配內存: 在聲明變量、對象等時候,系統會自動為它們分配內存 * 使用內存:在使用變量、對象的時候,會讀取或寫入內存 * 內存回收:使用完畢,由垃圾回收機制自動回收不再使用的內存 ### 2.3 js垃圾回收機制 >[warning] 回收機制會自動找出那些不再繼續使用的值,然后釋放其占用的內存。但某些情況下(閉包,全局變量),回收機制無法生效。 #### 2.3.1 引用計數法 跟蹤記錄每個值被引用的次數,聲明、賦值時,值引用次數加一,將值賦給其他變量時,引用次數再加一,包含值的變量賦值更改時減一,,在引用次數為0時回收。 ~~~ var a = {}; // 值: 對象{},引用次數: 1 var b = a; // 值: 對象{},引用次數: 1 + 1 a = null; // 值: 對象{},引用次數: 2 - 1 // 此時對象 {} 不會被回收 ~~~ #### 2.3.2 標記清除算法 > 標記:從引用根節點開始標記所有被引用的對象。清除:遍歷整個堆,把未標記的對象清除 1. 垃圾收集齊運行時給存儲在內存中的所有變量加上標記 2. 從根部觸發能觸及到的對象的標記清除 3. 還存在的標記的變量被視為準備刪除的對象 4. 垃圾收集器摧毀那些帶有標記的值并回收他們占用的內存空間 ### 2.4 內存泄漏 程序的運行需要內存,對于持續運行的服務進程,不及時釋放不再使用到的內存,會導致內存占用越來越高,輕則影響系統性能,重則導致進程崩潰。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看