<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>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # 3. 那些年,克服延遲之道 再困難的問題也有解決的方案,但這些方案卻良莠不齊。 ## 3.1. Spriting Spriting是一種將很多較小的圖片合并成一張大圖,再用JavaScript或者CSS將小圖重新“切割”出來的技術。 網站可以用該技術來提速:在HTTP 1.1里,下載一張大圖比下載100張小圖快得多。 ![](https://box.kancloud.cn/2015-08-09_55c75bc173aaf.png) 但是當某些頁面只需要顯示其中幾張小圖時,這種方案的缺點就凸顯出來了:它必須將整張大圖都從cache里取出,而不能將最頻繁使用的那些圖片保留在cache里。 ## 3.2. 內聯(Inlining) 內聯是另外一種防止發送很多小圖請求的技巧,它將圖片的原始數據嵌入在CSS文件里面的URL里。而這種方案的優缺點跟Spriting很類似。 ~~~ .icon1 { background: url(data:image/png;base64,<data>) no-repeat; } .icon2 { background: url(data:image/png;base64,<data>) no-repeat; } ~~~ ## 3.3. 拼接(Concatenation) 大型網站往往會包含大量的JavaScript文件。一些前端工具能幫助開發人員將這些文件合并為一個大的文件,從而讓瀏覽器能通過一個請求下載完,而不是發無數請求來分別下載那些小的JavaScript。但如果某頁面只需要其中一小部分代碼,它也必須下載完整的那份。而一個小小的文件改動也會造成大量數據的重載。 這種手段也給開發者造成了很大的不便。 ## 3.4 分片(Sharding) 最后一個我要說的性能優化技術叫做分片。顧名思義,分片就是把你的服務分散在盡可能多的主機上。這種方案乍一聽比較奇怪,但是實際上在它背后卻有非常深刻的道理! 最初的HTTP 1.1規范提到一個客戶端最多只能對同一主機建立兩個TCP連接。因此,為了不和規范沖突,一些聰明的網站使用了新的主機名。這樣的話,用戶就能和網站建立更多的連接,從而降低載入時間。 后來,兩個連接的限制被取消了,現在的客戶端可以輕松地和每個主機建立6-8個連接。但連接的上限卻是依然存在的,所以網站依然會用這種技術來提升連接的數量。隨著資源個數的提升(上面章節的圖例),網站需要更多的連接來保證HTTP協議的效率,從而提升載入速度。在現今的網站上,使用50甚至100個連接來打開一個頁面并不罕見。[httparchive.org](http://httparchive.org)的最新記錄顯示,在Top 30萬個URL中平均使用38(!)個TCP連接來顯示頁面。并且這個數字仍然在緩慢的增長。 另外一個將圖片或者其他資源分發到不同主機的理由是可以不使用cookies,畢竟現今cookies的大小已經非常可觀了。無cookies的圖片服務器意味著更小的HTTP請求和更好的性能! 下面的圖片展示了訪問一個瑞典著名網站的時候的數據包,請注意這些請求是如何被分發到不同主機的。 ![](https://box.kancloud.cn/2015-08-09_55c75bc18a3e9.png)
                  <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>

                              哎呀哎呀视频在线观看