博客專欄

        EEPW首頁 > 博客 > HTML5開發教程之如何提高網頁性能

        HTML5開發教程之如何提高網頁性能

        發布人:only1 時間:2020-08-27 來源:工程師 發布文章

        今天扣丁學堂小編給大家整理了一下關于如何提高網頁性能的介紹,首先大多數開發者會通過JavaScript和圖片來優化,通過服務器配置,壓縮文件和合并文件-甚至調整CSS(合并小圖片),可憐的HTML老是被忽視,盡管它一直是網絡的核心語言,下面我們一起來看一下吧。

          

        目前HTML正在變得越來越大,排名前100的網站每個HTML頁面大多在40K左右。亞馬遜和雅虎使用上千個HTML頁面。在youtube.com主頁面,HTML元素高達3500個。  

        減少的HTML復雜性和一個頁面的元素數量并不會明顯提高解析時間-但HTML是構建極速網頁,和適應不同設備并影響成功的一個關鍵性的因素。  

        在本文中,您將了解如何編寫簡潔干凈的HTML,使您能夠創建快速加載并支持多種設備的網站,將易于調試和維護。  

        寫代碼的方法并不是只有一種-尤其是HTML。這里只是講解一般經驗,但并不是唯一正確的選擇。  

        HTML,CSS和JavaScript  

        HTML是一種標記語言,用于表示結構和內容。HTML不應被用來顯示風格和樣式。不要為了顯得“更大”把文字寫在標題標簽(h1~h6)中,或只是為了縮進而使用blockquotes元素。相反,使用CSS來改變元素的外觀和布局。  

        HTML元素的默認外觀是通過瀏覽器的默認樣式實現的:Firefox,InternetExplorer和Opera均不一樣。例如,在Chrome中默認h1元素呈現為32px的大小。  

        三個基本原則:  

        使用HTML表示結構,CSS用來表現不同樣式的風格和主題。JavaScript來響應用戶行為。  

        使用HTML,必要時借助CSS,并且在不得己時再添加JavaScript。例如:在許多情況下,你可能使用HTML表單進行驗證,使用CSS或SVG來實現動畫。  

        將CSS和JavaScript從你的HTML代碼中分離。讓他們能夠緩存,這使代碼更易于調試。在生產中,CSS和JavaScript是可以壓縮合并的,應該作為你Build系統的一部分。注*參見JavaScript構建(編繹)系統大比拼  

        Document文檔結構  

        使用HTML5的documenttype:  

        XML/HTMLCode復制內容到剪貼板  

        <!DOCTYPEhtml>  

        <html>  

        <head>  

        <title>Recipes:pesto</title>  

        </head>  

        <body>  

        <h1>Pesto</h1>  

        <p>Pestoisgood!</p>  

        </body>  

        </html>  

        在頁面最頭部引用CSS文件,如在head元素中:  

        CSSCode復制內容到剪貼板  

        <head>  

        <title>Mypestorecipe</title>  

        <linkrel="/css/global.css">  

        <linkrel="css/local.css">  

        </head>  

        這樣,瀏覽器就可以在解析HTML前預先加載樣式而不會呈現一個混亂的頁面布局。  

        把JavaScript放在頁面的最底部,在body封閉之前。這將提高頁面渲染時間,因為瀏覽器可以在JavaScript裝載前將頁面渲染出來:  

        JavaScriptCode復制內容到剪貼板  

        <body>  

        ...  

        <scriptsrc="/js/global.js">  

        <scriptsrc="js/local.js">  

        </body>  

        在JavaScript添加事件處理。不要在HTML中添加。這樣非常難以維護,比如:  

        XML/HTMLCode復制內容到剪貼板  

        index.html:  

        <head>  

        ...  

        <scriptsrc="js/local.js">  

        </head>  

        <bodyonload="init()">  

        ...  

        <buttononclick="handleFoo()">Foo</button>  

        ...  

        </body>  

        這樣就好多了:  

        JavaScriptCode復制內容到剪貼板  

        <head>  

        ...  

        </head>  

        <body>  

        ...  

        <buttonid="foo">Foo</button>  

        ...  

        <scriptsrc="js/local.js">  

        </body>  

        js/local.js:  

        init();  

        varfooButton=  

        document.querySelector('#foo');  

        fooButton.onclick=handleFoo();  

        合法的HTML  

        Web網頁成功的一個主要因素就是瀏覽器可以處理無效的HTML。瀏覽器還有一些如何呈現無效代碼的標準化規則。  

        但是,這不你放任的理由。有效的HTML更容易調試,往往文件更小,速度更快,占用資源更少,因為它們渲染更快。無效的HTML讓響應式設計難以實施。  

        使用模板的時候寫有效的HTML是特別重要的。  

        在你的BUILD系統中驗證HTML:使用驗證插件,如HTMLHint和SublimeLinter來檢查你HTML的語法。  

        使用HTML5文檔類型。  

        請務必保持HTML的層次:正確嵌套元素,確保沒有任何未關閉的元素。它可以幫助調試者添加注釋。  

        XML/HTMLCode復制內容到剪貼板  

        <divid="foobar">  

        ...  

        </div><!--foobarends-->  

        請務必在非自封閉的元素后加上結束標簽,比如,下面的也可以工作:  

        XML/HTMLCode復制內容到剪貼板  

        <p>Pestoisgoodtoeat...  

        <p>...andpestoiseasytomake.  

        但是下面的寫法可以避免錯誤,段落層次更加明顯:  

        <p>Pestoisgoodtoeat...</p>  

        <p>...andpestoiseasytomake.</p>  

        items元素(li)并不是必須封閉的,有些非常聰明的的程序員會寫成這樣,無論如何,list元素(ul)是必須封閉的。  

        XML/HTMLCode復制內容到剪貼板  

        <ul>  

        <li>Basil  

        <li>Pinenuts  

        <li>Garlic  

        </ul>  

        有一點你必須注意video和audio元素。他們不是自封閉的:  

        XML/HTMLCode復制內容到剪貼板  

        <!--錯誤:liabletocauselayoutgrief-->  

        <videosrc="foo.webm"/>  

        <!--正確-->  

        <videosrc="foo.webm">  

        <p>Videoelementnotsupported.</p>  

        </video>  

        相反,通過刪除不必要的代碼HTML頁面會變得更干凈  

        沒有必要為自封閉元素添加"/",像img等  

        設置屬性是沒有值的,如果不加屬性的話(這種情況下,它不會自動播放,沒有控制控件),  

        video,它是沒有任何屬性的  

        XML/HTMLCode復制內容到剪貼板  

        <videosrc="foo.webm">  

        下面兩種更好  

        XML/HTMLCode復制內容到剪貼板  

        <videosrc="foo.webm"autoplay="false"controls="false">  

        <videosrc="foo.webm"autoplay="true"controls="true">  

        這種可讀性更強  

        XML/HTMLCode復制內容到剪貼板  

        <videosrc="foo.webm"autoplaycontrols>  

        stylet和script標簽不需要type屬性;默認就是css和javascript  

        優化協議地址更好(去除置http或https,它會根據當前協議自動配)  

        XML/HTMLCode復制內容到剪貼板  

        <ahref="//en.wikipedia.org/wiki/Tag_soup">Tagsoup</a>  

        增強可讀性,如,第一眼看上去就像是個標題  

        XML/HTMLCode復制內容到剪貼板  

        <h2><ahref="/contact">Contact</a><h2>  

        而這種則像個鏈接  

        <ahref="/contact"><h2>Contact</h1></a>  

        應該使用小寫  

        XML/HTMLCode復制內容到剪貼板  

        <AHREF="/">Home</A>  

        大小寫混合看上去更惡心  

        XML/HTMLCode復制內容到剪貼板  

        <H2>Pesto</h2>  

        語義標記  

        “語義”意思是跟含義相關  

        HTML應該標記有意義的內容:元素和描述的內容相符。  

        HTML5引入了一些新的‘語義元素’像<header>,<footer>和<nav>。  

        使用正確的元素表達正確的內容對于可訪問性是有幫助的。  

        使用<h1><h2>,<h3>代表標題,<ul>或<ol>代表lists  

        注意<article>的標題應該以<h1>開始  

        使用<header>,<footer>,<nav>and<aside>  

        使用<p>寫正文  

        使用<em>和<strong>代替<i>和<b>表示強調  

        表單使用<label>元素,input類型  

        混合文字和元素會導至布局的問題  

        XML/HTMLCode復制內容到剪貼板  

        <div>Name:<inputtype="text"></div>  

        最好用下面的表示  

        XML/HTMLCode復制內容到剪貼板  

        <div><label>Name:</label><inputtype="text"></div>  

        布局  

        HTML應該使用有意義的組織結構,而不是通過樣式來實現。  

        使用<p>元素代表文本,而不是用來布局。  

        避免使用<br>來換行,使用塊級元素和CSS來代替。  

        避免使用水平分隔線<hr>。使用CSS的border樣式來控制。  

        不要使用不必要的DIV。W3C對DIV的定義是排序的是最后一個元素。  

        要了解哪些元素是塊級元素,避免在DIV中放置不必要的塊級元素。將一個list放到div中是沒有必要的。  

        不要使用table來布局。  

        Flexbox是被廣泛推薦的,能用就用吧。  

        使用CSS的padding和margin,理解盒子模型。  

        CSS  

        這篇文章是關于HTML的,但是這里有一些基本的CSS小貼士。  

        避免內嵌的CSS。出于性能考慮,CSS可以在BUILD時內嵌到你的網頁中。  

        避免ID出現重復。  

        如果你想對多個元素應用某個樣式,那么請使用class,在父級元素上使用class比在子級上好:  

        XML/HTMLCode復制內容到剪貼板  

        <!--有點笨:(-->  

        <ul>  

        <liclass="ingredient">Basil</li>  

        <liclass="ingredient">Pinenuts</li>  

        <liclass="ingredient">Garlic</li>  

        </ul>  

        <!--更好:)-->  

        <ulclass="ingredients">  

        <li>Basil</li>  

        <li>Pinenuts</li>  

        <li>Garlic</li>  

        </ul>  

        可訪問性  

        使用語義元素  

        提供向后兼容  

        在鏈接上添加title屬性,而且應該避免與link文本出現相同的內容,在輸入元素上添加type和placeholder屬性。  

        以上就是關于扣丁學堂HTML5培訓之如何提高網頁性能的詳細介紹,最后想要工作不累就要不斷的提升自己的技能,想要快速學習HTML5開發就到由專業老師授課的扣丁學堂學習吧。扣丁學堂還有名師錄制的HTML5視頻教程供學員觀看學習,想要HTML5視頻教程的小伙伴快咨詢我們的專業老師索要吧。扣丁學堂H5技術交流群:751662650。

        *博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。



        關鍵詞:

        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 昌江| 平南县| 奎屯市| 天台县| 镇康县| 永吉县| 宣化县| 长岭县| 奉贤区| 黄陵县| 漯河市| 惠州市| 甘德县| 台南县| 龙胜| 拜泉县| 慈溪市| 修武县| 正宁县| 扎鲁特旗| 巴楚县| 扎兰屯市| 库尔勒市| 嘉定区| 宣化县| 自治县| 县级市| 商都县| 宜兰市| 宜宾市| 逊克县| 腾冲县| 如皋市| 儋州市| 阿拉善盟| 镇雄县| 东宁县| 丹巴县| 商洛市| 铁力市| 梨树县|