知っておくべきHTML最適化テクニック

知っておくべきHTML最適化テクニック

Web ページのパフォーマンスを向上させるために、多くの開発者は、JavaScript、画像の最適化、サーバー構成、ファイルの圧縮、CSS の調整など、複数の側面から始めます。

HTML は Web インターフェイスの開発に必要なコア言語であるにもかかわらず、ボトルネックに達していることは明らかです。 HTMLページの負荷も重くなってきています。ほとんどのページには平均 40K のスペースが必要です。大規模な Web サイトには数千の HTML 要素が含まれる場合があり、ページ サイズはさらに大きくなります。

HTML コードの複雑さとページ要素の数を効果的に減らすにはどうすればよいでしょうか。この記事では主にこの問題を解決し、簡潔で明確な HTML コードの書き方をさまざまな観点から紹介します。これにより、ページの読み込みが高速化され、複数のデバイスで適切に実行されるようになります。

設計および開発プロセスでは、次の原則に従う必要があります

  • 構造の分離: コンテンツのスタイル設定ではなく、構造の追加に HTML を使用します。
    クリーンな状態を保つ: ワークフローにコード検証ツールを追加し、ツールやスタイル ガイドを使用してコードの構造と形式を維持します。新しい言語を学ぶ: 要素の構造とセマンティック マークアップを正しくします。
    アクセシビリティを確保する: ARIA 属性や Fallback 属性などを使用します。テスト: エミュレーターやパフォーマンス ツールを使用して、Web サイトが複数のデバイスで適切に実行されるようにします。

HTML、CSS、JavaScriptの関係

HTML は、Web ページの構造とコンテンツを調整するために使用されるマークアップ言語です。 HTML を使用してスタイル コンテンツを変更したり、head タグにテキスト コンテンツを入力したりすることはできません。そのため、コードが長く複雑になります。代わりに、CSS を使用してレイアウト要素と外観を変更する方が適切です。 HTML 要素のデフォルトの外観は、ブラウザのデフォルトのスタイルシートによって定義されます。たとえば、Chrome では、h1 タグ要素は 32 px の Times 太字でレンダリングされます。

3 つの一般的な設計ルール:

  • HTML を使用してページ構造を構築し、CSS を使用してページの表示を変更し、JavaScript を使用してページ機能を実装します。 CSS ZenGarden は動作分離の優れた例です。
    CSS または JavaScript を使用して実現できる場合は、HTML コードを少なくしてください。
    CSS ファイルと JavaScript ファイルを HTML とは別に保存します。これはキャッシュとデバッグに役立ちます。

ドキュメント構造は次のように最適化することもできます。

1. HTML5 ドキュメント タイプを使用します。以下は空のファイルです。

XML/HTML コードコンテンツをクリップボードにコピー
  1. <!DOCTYPE html >   
  2. <html>   
  3.   
  4. <ヘッド>   
  5.   < title >レシピ: ペスト</ title >   
  6. </ヘッド>   
  7.   
  8. <本文>   
  9.   
  10.    < h1 >ペスト</ h1 >   
  11.   
  12.    < p >ペストは美味しいです! </ p >   
  13.   
  14. </本文>   
  15. </html>   
  16.   

2. ドキュメントの先頭で CSS ファイルを次のように参照します。

XML/HTML コードコンテンツをクリップボードにコピー
  1. <ヘッド>   
  2.    < title >私のペストレシピ</ title >   
  3.   
  4.    <リンク  rel = "スタイルシート"   href = "/css/global.css" >   
  5.    <リンク  rel = "スタイルシート"   href = "css/local.css" >   
  6.   
  7. </ヘッド>   
  8.   

どちらの方法でも、ブラウザは HTML コードを解析する前に CSS 情報を準備します。したがって、ページの読み込みパフォーマンスの向上に役立ちます。

ページの下部にある body 終了タグの前に JavaScript コードを入力すると、ブラウザが JavaScript コードを解析する前にページを読み込むため、ページの読み込みが高速化されます。JavaScript を使用すると、ページ要素に良い影響が及びます。

XML/HTML コードコンテンツをクリップボードにコピー
  1. <本文>   
  2.   
  3. ...
  4.   
  5.    <スクリプト  src = "/js/global.js" >   
  6.    <スクリプト  src = "js/local.js" >   
  7.   
  8. </本文>   
  9.   

Defer 属性と async 属性を使用すると、async 属性を持つスクリプト要素が順番に実行されることは保証されません。

ハンドラーは JavaScript コードに追加できます。次のコードのような HTML インライン コードには絶対に追加しないでください。エラーが発生しやすく、保守が困難になります。

インデックス.html:

XML/HTML コードコンテンツをクリップボードにコピー
  1. <ヘッド>   
  2.      
  3. ...
  4.   
  5.    <スクリプト  src = "js/local.js" >   
  6.   
  7. </ヘッド>   
  8.   
  9. <本文  onload = "init()" >   
  10.   
  11. ...
  12.   
  13.    <ボタン  onclick = "handleFoo()" > Foo </ button >   
  14.   
  15. ...
  16.   
  17. </本文>   
  18.   

次の方が良いです:

インデックス.html:

XML/HTML コードコンテンツをクリップボードにコピー
  1. <ヘッド>   
  2.   
  3. ...
  4.   
  5. </ヘッド>   
  6.   
  7. <本文>   
  8.   
  9. ...
  10.   
  11.    <ボタン  id = "foo" > Foo </ボタン>   
  12.   
  13. ...
  14.   
  15.    <スクリプト  src = "js/local.js" >   
  16.   
  17. </本文>   
  18.   

js/local.js:

JavaScriptコードコンテンツをクリップボードにコピー
  1. 初期化();
  2. var fooButton =
  3. document.querySelector( '#foo' );
  4. fooButton.onclick = handleFoo();

確認する

Web ページを最適化する 1 つの方法は、ブラウザーが不正な HTML コードを処理できるようにすることです。正当な HTML コードはデバッグが容易で、メモリの使用量が少なく、リソースの消費量が少なく、解析とレンダリングが容易で、実行速度が速くなります。不正な HTML コードにより、レスポンシブ デザインの実装が非常に困難になります。

テンプレートを使用する場合、HTML コードの合法性は非常に重要です。テンプレートは単独では問題なく動作しますが、他のモジュールと統合するとさまざまなエラーが報告されることがよくあります。したがって、HTML コードの品質を保証する必要があります。次の対策を講じることができます。

  • ワークフローに検証を追加します。HTMLHint や SublineLinter などの検証プラグインを使用して、コーディング エラーを検出します。
    HTML5 ドキュメント タイプを使用すると、HTML 階層の維持が容易になり、左開き状態での要素のネストが回避されます。
    各要素に必ず終了タグを追加してください。
    不要なコードを削除します。自己終了要素に終了タグを追加する必要はありません。ブール属性には値を割り当てる必要はなく、存在する場合は True になります。

コード形式

形式の一貫性により、HTML コードの読み取り、理解、最適化、デバッグが容易になります。

セマンティックマークアップ

セマンティクスとは意味が関連している事柄を指し、HTML はページ コンテンツのセマンティクスに反映されています。つまり、要素や属性の命名によって、コンテンツの役割や機能がある程度表現されます。 HTML5 では、<header>、<footer>、<nav> などの新しいセマンティック要素が導入されています。

適切な要素を選択してコードを記述すると、読みやすくなることが保証されます。

  • タイトルを示すには <h1> (<h2>、<h3>…) を使用し、リストを実装するには <ul> または <ol> を使用します。
    <article> タグを使用する前に <h1> タグを追加する必要があることに注意してください。
    <header>、<footer>、<nav>、<aside> などの適切な HTML5 セマンティック要素を選択します。
    本文を説明するには <p> を使用します。HTML5 のセマンティック要素はコンテンツを形成できますが、その逆はできません。
    <i> タグと <b> タグの代わりに <em> タグと <strong> タグを使用します。
    検証を強制するには、<label> 要素、入力タイプ、プレースホルダー、その他の属性を使用します。
    テキストを別の要素の子として要素と混在させると、レイアウト エラーが発生する可能性があります。

例えば:

XML/HTML コードコンテンツをクリップボードにコピー
  1. < div >名前: <入力 タイプ= "テキスト"   id = "名前" > </ div >   

別の方法で書いた方が良いでしょう:

1: <div>
2: <label for="name">名前:</label><input type="text" id="name">
3: </div>

レイアウト

HTML コードのパフォーマンスを向上させるには、HTML コードはスタイルではなく機能性を重視して設計するという原則に従ってください。

  • <p> 要素はレイアウトではなくテキストの装飾に使用します。デフォルトでは、<p> によって自動的に余白が提供され、他のスタイルもブラウザーによってデフォルトで提供されます。
    行を区切るために <br> を使用しないでください。代わりにブロック要素または CSS 表示プロパティを使用してください。
    水平線を追加するのに <hr> を使用しないでください。代わりに CSS border-bottom を使用してください。
    重要な瞬間でない限り、div タグを使用しないでください。
    レイアウトにはできるだけ少ないテーブルを使用するようにしてください。
    Flex Boxをもっと活用できる
    CSSを使用して余白などを調整します。

CS

この記事は HTML の最適化に関するものですが、CSS を使用するための基本的なスキルもいくつか紹介します。

  • インラインCSSを避ける
    ID クラスは最大 1 回だけ使用してください。複数の要素が関係する場合は、Class を使用して実装できます。

以上が、今回紹介したHTMLコードの最適化のコツです。高品質で高性能なWebサイトは、細部の扱いに左右されることが多いです。

<<:  Firefoxでリンクをクリックしたときに点線の枠線を削除する方法

>>:  VS2022 リモート デバッグ ツールの使い方

推薦する

MySQLにおけるビューの作成(CREATE VIEW)と使用制限の詳しい説明

この記事では、例を使用して、MySQL ビューの作成 (CREATE VIEW) と使用上の制限につ...

jQueryはシンプルなボタンの色の変更を実装します

HTML と CSS で、ボタンの色を設定したいとします。 目的の効果は得られますが、プロセスはかな...

実行中の Docker コンテナにボリュームを動的に追加する方法

以前、Docker コンテナの起動後にボリュームをマウントできるかどうか尋ねられたことがあります。m...

Docker+nextcloudで個人用クラウドストレージシステムを構築

1. Dockerのインストールと起動 yum で epel-release をインストールします ...

MySQL のジオメトリ型を使用して経度と緯度の距離の問題を処理する方法

テーブルを作成する テーブル `map` を作成します ( `id` int(11) NULLではな...

テーブルの作成、フィールドの追加、フィールドの変更、インデックスの追加によく使用される MySQL の SQL 文の概要

この記事では、テーブルの作成、フィールドの追加、フィールドの変更、インデックスの追加を行う一般的な ...

JavaScript JSON.stringify() の使用法の概要

目次1. 使用方法1. 基本的な使い方2. 2番目のパラメータ - フィルター3. 3番目のパラメー...

Linux ファイル記述子、ファイルポインタ、および inode の詳細

目次Linux - ファイル記述子、ファイルポインタ、インデックスノード1. Linux - ファイ...

MySQLクエリトランザクション処理へのノード接続の実装

目次トピックmysqlの追加、削除、変更、クエリを入力しますMySQL トランザクション処理私は M...

Vue3+Vite+TS は、要素プラスビジネスコンポーネントの二次カプセル化を実装します sfasga

目次1. 構造文字列2. タプルを返す3. Dict辞書にアクセスする4. 図書館を利用する5. リ...

vue3 学習ノートにおける axios の使用の変更の概要

目次1. axioの基本的な使い方2. クロスドメインの問題を解決するには? 3. パッケージ4. ...

親ページの更新を制御するために HTML で iframe を実装するためのアイデアとコード

1. 応用シナリオ親ページ a.jspサブページ b.jsp (ページ a に埋め込まれた ifra...

MySQL マルチテーブルクエリ例の詳しい解説 [リンククエリ、サブクエリなど]

この記事では、例を挙げて MySQL のマルチテーブル クエリについて説明します。ご参考までに、詳細...

TomcatをダウンロードしてLinuxにインストールする詳細な手順

Linux に触れたばかりの方には、この内容が役に立つかもしれません。Linux にしばらく触れてい...

MySQLデータ遅延ジャンプの問題の解決策

今日は、データベース遅延ジャンプに関する別の典型的な問題を分析しました。このプロセスでは、参考のため...