Maison  >  Article  >  interface Web  >  Comment optimiser HTML pour améliorer les performances des pages Web

Comment optimiser HTML pour améliorer les performances des pages Web

小云云
小云云original
2017-11-20 09:18:562805parcourir

Il existe de nombreuses façons d'améliorer les performances des pages Web. En plus d'utiliser JS ou d'ajuster la configuration du serveur et CSS pour améliorer les performances des pages Web, nous pouvons réellement améliorer les performances des pages Web via HTML.

Le HTML devient de plus en plus gros. Chaque page HTML des 100 meilleurs sites Web fait pour la plupart environ 40 Ko. Amazon et Yahoo utilisent des milliers de pages HTML. Sur la page principale de youtube.com, il y a jusqu'à 3 500 éléments HTML.

Réduire la complexité du HTML et le nombre d'éléments sur une page n'améliore pas de manière significative le temps d'analyse - mais le HTML est un facteur essentiel dans la création de pages Web extrêmement rapides, s'adaptant à différents appareils et affectant le succès.
Dans cet article, vous apprendrez à écrire du HTML concis et propre, vous permettant de créer un site Web qui se charge rapidement et prend en charge plusieurs appareils, et qui sera facile à déboguer et à maintenir.

Il n'existe pas une seule façon d'écrire du code - en particulier du HTML. Ceci n’est qu’une expérience générale, mais ce n’est pas le seul bon choix.
HTML, CSS et JavaScript

HTML est un langage de balisage utilisé pour représenter la structure et le contenu.

HTML ne doit pas être utilisé pour afficher des styles et des styles. Ne mettez pas de texte dans les balises de titre (h1~h6) pour paraître « plus grand » ou n'utilisez pas d'éléments blockquotes uniquement pour l'indentation. Utilisez plutôt CSS pour modifier l’apparence et la disposition des éléments.

L'apparence par défaut des éléments HTML est obtenue grâce aux styles par défaut du navigateur : Firefox, Internet Explorer et Opera sont tous différents. Par exemple, dans Chrome, l'élément h1 est rendu par défaut à une taille de 32 pixels.

Trois principes de base :

Utilisez HTML pour exprimer la structure et CSS pour exprimer différents styles et thèmes. JavaScript pour répondre aux actions des utilisateurs.

Utilisez HTML, CSS si nécessaire et JavaScript si nécessaire. Par exemple : dans de nombreux cas, vous pouvez utiliser des formulaires HTML pour la validation et CSS ou SVG pour les animations.

Séparez CSS et JavaScript de votre code HTML. Les rendre mis en cache rend le code plus facile à déboguer. En production, CSS et JavaScript peuvent être réduits et fusionnés et doivent être inclus dans votre système de construction. Remarque* Voir le concours du système de construction (compilation) JavaScript
Structure du document

Utiliser le type de document HTML5 :

Code XML/HTML pour copier le contenu dans le presse-papiers

<!DOCTYPE html>  
<html>  
<head>  
<title>Recipes: pesto</title>  
</head> 
<body>  
  <h1>Pesto</h1>  
 <p>Pesto is good!</p>  
 </body>  
</html>

Référencer le fichier CSS en haut de la page, comme dans l'élément head :

Le code CSS copie le contenu dans le presse-papier

<head>   
  <title>My pesto recipe</title>   
  <link rel="/css/global.css">   
  <link rel="css/local.css">   
</head>

De cette façon, le navigateur peut analyser les styles HTML Preload sans afficher une mise en page encombrée.

Placez JavaScript tout en bas de la page, avant la fermeture du corps. Cela améliorera le temps de rendu de la page car le navigateur peut restituer la page avant le chargement du JavaScript :

Le code JavaScript copie le contenu dans le presse-papiers

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

Ajoutez la gestion des événements en JavaScript. Ne l'ajoutez pas en HTML. C'est très difficile à maintenir, par exemple :

Code XML/HTML copier le contenu dans le presse-papiers

index.html :

<head>  
  ...   
  <script src="js/local.js">  
  
</head>  
  
<body onload="init()">  
  ...   
  <button onclick="handleFoo()">Foo</button>  
  ...   
</body>

C'est bien mieux :

Le code JavaScript copie le contenu dans le presse-papiers

<head>   
  ...   
</head>   
  
<body>   
  ...   
  <button id="foo">Foo</button>   
  ...   
  <script src="js/local.js">   
</body>

js/local.js :

init();   
var fooButton =   
    document.querySelector(&#39;#foo&#39;);   
fooButton.onclick = handleFoo();  
 合法的HTML

Un des principaux facteurs de succès des pages Web est que le navigateur peut gérer du HTML invalide. Les navigateurs disposent également de règles standardisées sur la manière de restituer le code invalide.

Cependant, ce n’est pas une raison pour que vous laissiez tomber. Un code HTML valide est plus facile à déboguer, a tendance à avoir des tailles de fichiers plus petites, est plus rapide et utilise moins de ressources car son rendu est plus rapide. Un code HTML invalide rend la conception réactive difficile à mettre en œuvre.

Il est particulièrement important d'écrire du code HTML valide lors de l'utilisation de modèles.

Validez le HTML dans votre système BUILD : utilisez des plugins de validation tels que HTMLHint et SublimeLinter pour vérifier la syntaxe de votre HTML.

Utilisez le type de document HTML5.

Assurez-vous de garder votre HTML hiérarchique : imbriquez correctement les éléments et assurez-vous qu'il n'y a pas d'éléments non fermés. Cela aide les débogueurs à ajouter des commentaires.

Code XML/HTML Copier le contenu dans le presse-papiers

<div id="foobar">  
...   
</div> <!-- foobar ends -->

Assurez-vous d'ajouter une balise de fermeture après l'élément non auto-fermant. Par exemple, ce qui suit fonctionnera également : <.>

Le code XML/HTML copie le contenu dans le presse-papiers

<p>Pesto is good to eat...   
<p>...and pesto is easy to make.
Mais la méthode d'écriture suivante peut éviter les erreurs et rendre la hiérarchie des paragraphes plus évidente :

<p>Pesto is good to eat...</p>
<p>...and pesto is easy to make.</p>

  items元素(li)并不是必须封闭的,有些非常聪明的的程序员会写成这样,无论如何,list元素(ul)是必须封闭的。

XML/HTML Code复制内容到剪贴板

<ul>  
  <li>Basil   
  <li>Pine nuts   
  <li>Garlic   
</ul>

  有一点你必须注意video和audio元素。他们不是自封闭的:

XML/HTML Code复制内容到剪贴板

2f1326fc2f646a8faff2bb58dc66418c  

<video src="foo.webm" />

  

9b6785e5cb2693150f7d9cd2f51aefeb  

<video src="foo.webm">  
  <p>Video element not supported.</p>  
</video>

  相反,通过删除不必要的代码HTML页面会变得更干净

  没有必要为自封闭元素添加"/",像img等

  设置属性是没有值的,如果不加属性的话(这种情况下,它不会自动播放,没有控制控件),

  video,它是没有任何属性的

XML/HTML Code复制内容到剪贴板

<video src="foo.webm">

  下面两种更好

XML/HTML Code复制内容到剪贴板

<video src="foo.webm" autoplay="false" controls="false">  
<video src="foo.webm" autoplay="true" controls="true">

  这种可读性更强

XML/HTML Code复制内容到剪贴板

<video src="foo.webm" autoplay controls>

  stylet和script标签不需要type属性;默认就是css和javascript

  优化协议地址更好(去除置http或https,它会根据当前协议自动配)

XML/HTML Code复制内容到剪贴板

<a href="//en.wikipedia.org/wiki/Tag_soup">Tag soup</a>

  增强可读性,如,第一眼看上去就像是个标题

XML/HTML Code复制内容到剪贴板

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

  而这种则像个链接

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

  应该使用小写

XML/HTML Code复制内容到剪贴板

<A HREF="/">Home</A>

  大小写混合看上去更恶心

XML/HTML Code复制内容到剪贴板

<H2>Pesto</h2>

 语义标记

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

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

  HTML5引入了一些新的‘语义元素’像 1aa9e5d373740b65a0cc8f0a02150c53, c37f8231a37e88427e62669260f0074d 和 c787b9a589a3ece771e842a6176cf8e9。

  使用正确的元素表达正确的内容对于可访问性是有帮助的。

  使用4a249f0d628e2318394fd9b75b4636b1c1a436a314ed609750bd7c7d319db4da,684271ed9684bde649abda8831d4d355代表标题, ff6d136ddc5fdfeffaf53ff6ee95f185或c34106e0b4e09414b63b2ea253ff83d6代表lists

  注意23c3de37f2f9ebcb477c4a90aac6fffd的标题应该以4a249f0d628e2318394fd9b75b4636b1开始

  使用1aa9e5d373740b65a0cc8f0a02150c53, c37f8231a37e88427e62669260f0074d, c787b9a589a3ece771e842a6176cf8e9 and 15221ee8cba27fc1d7a26c47a001eb9b

  使用e388a4556c0f65e1904146cc1a846bee写正文

  使用907fae80ddef53131f3292ee4f81644b 和 8e99a69fbe029cd4e2b854e244eab143 代替 5a8028ccc7a7e27417bff9f05adf5932 和 a4b561c25d9afb9ac8dc4d70affff419 表示强调

  表单使用2e1cf0710519d5598b1f0f14c36ba674元素,input 类型

  混合文字和元素会导至布局的问题

XML/HTML Code复制内容到剪贴板

<div>Name: <input type="text"></div>

  最好用下面的表示

XML/HTML Code复制内容到剪贴板

<div><label>Name:</label><input type="text"></div>

 布局

  HTML应该使用有意义的组织结构,而不是通过样式来实现。

  使用e388a4556c0f65e1904146cc1a846bee元素代表文本,而不是用来布局。

  避免使用0c6dc11e160d3b678d68754cc175188a来换行,使用块级元素和CSS来代替。

  避免使用水平分隔线f32b48428a809b51f04d3228cdf461fa。使用CSS的border样式来控制。

  不要使用不必要的DIV。W3C对DIV的定义是排序的是最后一个元素。

  要了解哪些元素是块级元素,避免在DIV中放置不必要的块级元素。将一个list放到div中是没有必要的。

  不要使用table来布局。

  Flex box是被广泛推荐的,能用就用吧。

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

  这篇文章是关于HTML的,但是这里有一些基本的CSS小贴士。

  避免内嵌的CSS。出于性能考虑,CSS可以在BUILD时内嵌到你的网页中。

  避免ID出现重复。

  如果你想对多个元素应用某个样式,那么请使用class,在父级元素上使用class比在子级上好:

XML/HTML Code复制内容到剪贴板

743c50a7387311514c3debdf2b2f5314  

<ul>  
  <li class="ingredient">Basil</li>  
  <li class="ingredient">Pine nuts</li>  
  <li class="ingredient">Garlic</li>  
</ul>

e183d76c645fd696b46e29069992c16d  

<ul class="ingredients">  
  <li>Basil</li>  
  <li>Pine nuts</li>  
  <li>Garlic</li>  
</ul>

以上就是如何通过优化HTML代码来提高网页性能的方法,希望对大家有帮助。

相关推荐:

如何优化数据库

网页性能如何优化

如何优化网页性能

web前端性能优化方法

网页图片优化

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn