首頁 web前端 html教學 怎樣編寫高效能HTML網頁

怎樣編寫高效能HTML網頁

Apr 08, 2017 am 11:30 AM

  你怎麼能提升網頁效能?

  大多數開發者會透過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,Internet Explorer和Opera均不一樣。例如,在Chrome中預設h1元素呈現為32px的大小。

  三個基本原則:

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

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

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

#  Document文檔結構

#   使用 HTML5的document type:

<!DOCTYPE html>
<html>
<head>
 <title>Recipes: pesto</title>
</head>
<body>

  <h1>Pesto</h1>
  <p>Pesto is good!</p>

</body>
</html>
登入後複製

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

<head>
  <title>My pesto recipe</title>
  <link rel="/css/global.css">
  <link rel="css/local.css">
</head>
登入後複製

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

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

<body>
  ...
  <script src="/js/global.js">
  <script src="js/local.js">

</body>
登入後複製

  在JavaScript新增事件處理。 不要在HTML中加入。這樣非常難維護,例如:

index.html:

<head>
  ...
  <script src="js/local.js">

</head>

<body onload="init()">
  ...
  <button onclick="handleFoo()">Foo</button>
  ...
</body>
登入後複製

  這樣就好多了:

<head>
  ...
</head>

<body>
  ...
  <button id="foo">Foo</button>
  ...
  <script src="js/local.js">
</body>
登入後複製

  js/local.js:

init();
var fooButton =
    document.querySelector('#foo');
fooButton.onclick = handleFoo();
登入後複製

##  合法的HTML

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

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

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

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

  使用HTML5文件類型。

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

<p id="foobar">
...
</p> <!-- foobar ends -->
登入後複製
  請務必在非自封閉的元素後面加上結束標籤,例如,下面的也可以工作:

<p>Pesto is good to eat...
<p>...and pesto is easy to make.
登入後複製
  但是下面的寫法可以避免錯誤,段落層次更加明顯:

<p>Pesto is good to eat...</p>
<p>...and pesto is easy to make.</p>
登入後複製
  items元素(li)並不是必須封閉的,有些非常聰明的的程式設計師會寫成這樣,無論如何,list元素(ul)是必須封閉的。

<ul>
  <li>Basil
  <li>Pine nuts
  <li>Garlic
</ul>
登入後複製
  有一點你必須注意video和audio元素。他們不是自封閉的:

<!-- 错误: liable to cause layout grief -->
<video src="foo.webm" />

<!-- 正确 -->
<video src="foo.webm">
  <p>Video element not supported.</p>
</video>
登入後複製
  相反,透過刪除不必要的程式碼HTML頁面會變得更乾淨

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

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

#   video,它是沒有任何屬性的

<video src="foo.webm">
登入後複製
  下面兩種更好

<video src="foo.webm" autoplay="false" controls="false">
<video src="foo.webm" autoplay="true" controls="true">
登入後複製
  這種可讀性更強

<video src="foo.webm" autoplay controls>
登入後複製
  stylet和script標籤不需要type屬性;預設就是css和javascript

#   最佳化協定位址較好(去置http或https,它會根據目前協定自動配)

<a href="//en.wikipedia.org/wiki/Tag_soup">Tag soup</a>
登入後複製
  增強可讀性,如,第一眼看上去就像是個標題###
<h2><a href="/contact">Contact</a><h2>
登入後複製

  而这种则像个链接

<a href="/contact"><h2>Contact</h1></a>
登入後複製

  应该使用小写

<A HREF="/">Home</A>
登入後複製

  大小写混合看上去更恶心

<H2>Pesto</h2>
登入後複製

 语义标记

  “语义”意思是跟含义相关

  HTML应该标记有意义的内容:元素和描述的内容相符。

  HTML5引入了一些新的‘语义元素’像

,
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

HTML 中的表格邊框 HTML 中的表格邊框 Sep 04, 2024 pm 04:49 PM

HTML 表格邊框指南。在這裡,我們以 HTML 中的表格邊框為例,討論定義表格邊框的多種方法。

HTML 中的巢狀表 HTML 中的巢狀表 Sep 04, 2024 pm 04:49 PM

這是 HTML 中巢狀表的指南。這裡我們討論如何在表中建立表格以及對應的範例。

HTML 左邊距 HTML 左邊距 Sep 04, 2024 pm 04:48 PM

HTML 左邊距指南。在這裡,我們討論 HTML margin-left 的簡要概述及其範例及其程式碼實作。

HTML 表格佈局 HTML 表格佈局 Sep 04, 2024 pm 04:54 PM

HTML 表格佈局指南。在這裡,我們詳細討論 HTML 表格佈局的值以及範例和輸出。

HTML 輸入佔位符 HTML 輸入佔位符 Sep 04, 2024 pm 04:54 PM

HTML 輸入佔位符指南。在這裡,我們討論 HTML 輸入佔位符的範例以及程式碼和輸出。

HTML 有序列表 HTML 有序列表 Sep 04, 2024 pm 04:43 PM

HTML 有序列表指南。在這裡我們也分別討論了 HTML 有序列表和類型的介紹以及它們的範例

HTML onclick 按鈕 HTML onclick 按鈕 Sep 04, 2024 pm 04:49 PM

HTML onclick 按鈕指南。這裡我們分別討論它們的介紹、工作原理、範例以及各個事件中的onclick事件。

在 HTML 中移動文字 在 HTML 中移動文字 Sep 04, 2024 pm 04:45 PM

HTML 中的文字移動指南。在這裡我們討論一下marquee標籤如何使用語法和實作範例。

See all articles