web-dev-qa-db-ja.com

HTMLミニフィケーション?

[〜#〜] html [〜#〜] ページのソースを入力してコードを縮小できるオンラインツールはありますか?

Webサーバーにgzipを作成するのは良い考えではないため、aspxファイルに対してそれを行います...

99
Paulo

おそらく HTML Compressor を試してみてください。これができることを示す前と後の表です(スタックオーバーフロー自体を含む)。

Sorry, markdown has no concept of tables

ページを最適化するための多くの選択肢があり、スクリプトの最小化(コンプレッサー、Google Closure Compiler、独自のコンプレッサー)が安全な場所に含まれます。デフォルトのオプションセットは非常に控えめであるため、それから始めて、より積極的なオプションを有効にして実験することができます。

プロジェクトは非常によく文書化され、サポートされています。

63
john

これをしないでください 。むしろ、あなたがそれを主張するなら、より重要なサイトの最適化が完了した後にそれをしてください。オンラインツールを使用して各ページを処理することを計画している場合は、この作業のコスト/メリットが無視できるほど非常に高い可能性があります。特に.

YSlow または Page Speed を使用して、ページを最適化するために本当に必要なを決定します。私の推測では、HTMLのバイト数を減らすことはあなたのサイトの最大の問題ではないでしょう。圧縮、キャッシュ管理、画像の最適化などがサイト全体のパフォーマンスに大きな違いをもたらす可能性がはるかに高くなります。これらのツールは、最大の問題が何であるかを示します-それらをすべて処理し、それでもHTMLの縮小化が大きな違いを生む場合は、それを選択します。

(本当にやりたい場合、Apache httpdを使用する場合は、 mod_pagespeed を使用し、空白などを減らすオプションをオンにすることを検討するかもしれませんが、 リスク 。)

58
Zac Thompson

あなたの質問への短い答えは次のとおりです:HTML、CSS、JSを縮小する必要があります。 grunt と呼ばれる使いやすいツールがあります。これにより、多くのタスクを自動化できます。その中で [〜#〜] js [〜#〜][〜#〜] css [〜#〜][〜#〜] html [〜#〜] 縮小、 ファイル連結 および その他多数

ここに書かれている答えは非常に時代遅れであり、時には意味をなさないことさえあります。多くの事柄が古い2009年から変更されたため、これに適切に答えようとします。

短い答え-HTMLを確実に縮小する必要があります。今日はささいなことで、およそ 5%高速化 になります。より長い回答については、回答全体をお読みください

昔、人々はcss/jsを手動で縮小していました(特定のツールを使用して実行することにより)。プロセスを自動化するのはやや大変で、間違いなくいくつかのスキルが必要でした。現在でも多くの高レベルのサイトがgzipを使用していないこと(これは簡単なことです)を知っているため、人々がhtmlの縮小に消極的だったことは理解できます。

では、なぜ人々はjsを縮小しましたが、htmlは縮小しなかったのですか? JSを縮小すると、次のことを行います。

  • コメントを削除する
  • 空白(タブ、スペース、改行)を削除します
  • 長い名前を短い(var isUserLoggedInからvar a

これは昔でも多くの改善をもたらしました。しかし、htmlでは、長い名前を短く変更することはできませんでした。また、その間にコメントすることはほとんどありませんでした。したがって、残った唯一のことは、スペースと改行を削除することです。わずかな改善しか得られません。

ここに記載されている間違った引数の1つは、コンテンツがgzipで提供されるため、縮小化が意味をなさないということです。これはまったく間違っています。はい、gzipは縮小の改善を減らすことは理にかなっていますが、なぜコメント、適切にトリムできて空白をgzipし、重要な部分だけをgzipする必要があるのでしょうか。これは、使用することのないがらくたをアーカイブするフォルダーがあり、クリーンアップして圧縮するのではなく、単に圧縮することにした場合と同じです。

もう一つの議論は、それが退屈であるということです。おそらくこれは2009年に真実だったかもしれませんが、この後、新しいツールが現れました。現在、手動でマークアップを縮小する必要はありません。 Grunt のようなものでは grunt-contrib-htmlmin (@ -kangaxによる HTMLMinifier に依存)をインストールし、 html。必要なのは、うなり声を学び、すべてを構成するのに2時間程度です。その後、すべてが1秒未満で自動的に実行されます。 1秒( grunt-contrib-watch を使用して自動化することもできます)は、約5%の改善(gzipを使用しても)にはそれほど悪くないようです。

もう1つの引数は、CSSとJSはstaticであり、HTMLはサーバーによって生成されるため、事前に縮小することはできません。これは2009年にも当てはまりましたが、現在 more および more のサイトは、サーバーが薄く、クライアントがすべてのルーティング、テンプレート化を行っている単一ページのアプリのように見えますその他のロジック。したがって、サーバーは [〜#〜] json [〜#〜] のみを提供し、クライアントはそれをレンダリングします。ここには、ページ用のHTMLとさまざまなテンプレートがたくさんあります。

だから私の考えを終えるには:

  • googleはHTMLを縮小しています。
  • pageSpeed はHTMLを縮小するように求めています
  • するのは簡単です
  • 〜5%の改善をもたらします
  • gzipとは異なります
33
Salvador Dali

HTMLを縮小するWebツールを作成しました。 http://prettydiff.com/?m=minify&html

このツールは、次のルールを使用して動作します。

  • すべてのHTMLコメントが削除されます
  • 空白文字の実行は単一の空白文字に変換されます
  • タグ内の不要な空白文字は削除されます
  • これらの2つのタグのいずれかがシングルトンではない2つのタグ間の空白文字は削除されます
  • styleタグ内のすべてのコンテンツはCSSであると想定され、そのように縮小されます
  • scriptタグ内のすべてのコンテンツは、異なるメディアタイプが提供されない限りJavaScriptであると想定され、そのように縮小されます
    • CSSとJavaScriptのミニフィケーションは、JSMinの大きく分岐した形式を使用します。このフォークは、CSSをネイティブでサポートし、SCSS構文もサポートするように拡張されています。 JavaScriptの縮小ではセミコロンの自動挿入がサポートされていますが、自動中括弧の挿入はまだサポートされていません。
    23
    austin cheney

    これは私のために働いた:

    http://minify.googlecode.com/git/min/lib/Minify/HTML.php

    既に利用可能なオンラインツールではありませんが、シンプルなPHP.

    ただし、圧縮ファイルは保存せず、本当に必要な場合は動的に実行します。Gzipサーバーの圧縮を有効にすることをお勧めします。私はそれがIIS/.Netにどのように関与しているのか分かりませんが、PHPでは、グローバルインクルードファイルに1行を追加するのと同じくらい簡単

    8
    adamJLev

    CodeProjectには公開されたサンプルプロジェクトがあります( http://www.codeproject.com/KB/aspnet/AspNetOptimizer.aspx?fid=1528916&df=90&mpp=25&noise=3&sort=Position&view=Quick&select=27949 )以下の状況のいくつか...

    • ScriptResource.axd呼び出しを単一の呼び出しに結合する
    • Gzip/deflateを含むブラウザ機能に基づいて、すべてのクライアント側スクリプトを圧縮します
    • コメント、インデント、および改行を削除するScriptMinifier。
    • Gzip/deflateを含むブラウザ機能に基づいてすべてのhtmlマークアップを圧縮するHTMLコンプレッサー。
    • そして-最も重要なこと-完全なhtmlを1行に記述し、可能なレベル(作成中)で縮小するHTMLミニファイヤ。
    6
    The Lazy DBA

    Microsoft .NETプラットフォームには、 WebMarkupMin と呼ばれるライブラリがあり、HTMLコードの縮小を生成します。

    さらに、このライブラリをASP.NET MVCに統合するためのモジュールがあります- WebMarkupMin.Mvc

    3
    Andrey Taritsyn

    try http://code.mini-tips.com/html-minifier.html 、これはHtml Minifier用の.NET Libaryです

    HtmlCompressorは、コンテンツ構造を壊さずに余分な空白、コメント、その他の不要な文字を削除することにより、特定のHTMLまたはXMLソースを最小化する、小さく、高速で非常に使いやすい.NETライブラリです。その結果、ページのサイズが小さくなり、読み込みが速くなります。コンプレッサーのコマンドラインバージョンも利用できます。

    1
    SonNguyen.ALI