回答:
おそらく、HTML Compressorを試してみてください。これは、(Stack Overflow自体を含めて)何ができるかを示すビフォーとアフターの表です。
安全な場所でのスクリプトの最小化(ompressor、Google Closure Compiler、独自のコンプレッサー)まで、ページを最適化するための多くの選択肢を備えています。デフォルトのオプションセットはかなり保守的であるため、それから始めて、より積極的なオプションを有効にすることを試すことができます。
プロジェクトは非常によく文書化され、サポートされています。
これを行わないでください。むしろ、あなたがそれを主張するなら、より重要なサイトの最適化が完了した後でそれを実行してください。特に手動でオンラインツールを使用して各ページを処理することを計画している場合は、この取り組みのコスト/メリットが無視できる可能性が非常に高くなります。
YSlowまたはPage Speedを使用して、ページを最適化するために本当に何をする必要があるかを判断します。私の推測では、HTMLのバイト数を減らすことはあなたのサイトの最大の問題ではないでしょう。圧縮、キャッシュ管理、画像の最適化などにより、サイト全体のパフォーマンスに大きな違いが生じる可能性ははるかに高くなります。これらのツールは、最大の問題が何であるかを示します。それらすべてに対処しても、HTMLの縮小化が大きな違いをもたらすことがわかった場合は、それを試してください。
(確実に実行したい場合で、Apache httpdを使用している場合は、mod_pagespeedを使用して、空白などを削減するためにいくつかのオプションをオンにすることを検討できますが、リスクに注意してください。)
white-space: pre
、縮小化により事前にフォーマットされたテキストが破棄されます。
white-space:pre
は、はい、HTMLの縮小はより複雑になります。ただし、誰かがpre
or code
要素を使用するのではなく、なぜwhite-space:preを使用するのかについては明確ではありません。
ここにあなたの質問への短い答えがあります:あなたはあなたの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年もそうだったかもしれませんが、その後、新しいツールが登場しました。現時点では、手動でマークアップを縮小する必要はありません。以下のようなものでうなり声、インストールするのは簡単です作男-contribの-htmlminを(に依存しているHTMLMinifier @kangaxにより)し、HTMLを縮小化するように構成します。必要なのは、うなり声を学び、すべてを構成するのに2時間程度です。その後、すべてが1秒未満で自動的に行われます。1秒の音(grunt-contrib-watchで何もしないように自動化することもできます)は、(gzipを使用しても)約5%の改善にはそれほど悪くありません。
もう1つの議論は、CSSとJSは静的であり、HTMLはサーバーによって生成されるため、事前に縮小できないことです。これは、2009年にもそうでしたが、現在はより多くのそしてより多くのサイトでは、サーバーが薄い単一ページアプリのように見ていると、クライアントはすべてのルーティング、テンプレートや他のロジックを行っています。したがって、サーバーはJSONのみを提供し、クライアントはそれをレンダリングします。ここには、ページとさまざまなテンプレート用のHTMLがたくさんあります。
だから私の考えを終えるには:
<span>
)はほとんどありません。まず最初に、有効なhtmlを記述して、空白を無視する方法を常に見つけることができます。また、驚いたかもしれませんが、JS / CSS minifierにもバグが発生する可能性があります。これは、使用してはいけないという意味ではありません。したがって、問題を解決する2つの方法:空白にとらわれないマークアップを書くことを学び、縮小の前/後に製品をテストします(CSS / HTML / JS)。また、Minifierでは、保持する空白を指定できます。
* { white-space: pre; }
は明らかなものですが、すべての空白を削除して折りたたむだけでなく(代わりに余白に置き換える)場合、テキストが正しくコピーされず、テキストブラウザーやスクリーンリーダーで大混乱を引き起こす可能性があります。
HTMLを縮小するためのWebツールを作成しました。 http://prettydiff.com/?m=minify&html
このツールは、次のルールを使用して動作します。
style
タグ内のすべてのコンテンツはCSSであると推定され、そのように縮小されますscript
別のメディアタイプが提供されない限り、タグ内のすべてのコンテンツはJavaScriptであると見なされ、そのように縮小されます。<!--[if IE 8.0]><link rel="stylesheet" href="css/ie8.css" type="text/css" /><![endif]-->
これは私のために働きました:
http://minify.googlecode.com/git/min/lib/Minify/HTML.php
これはまだ利用可能なオンラインツールではありませんが、単純なPHPインクルードであるため、自分で実行できるほど簡単です。
ただし、圧縮ファイルは保存しないので、必要に応じて動的に保存します。Gzipサーバーの圧縮を有効にすることをお勧めします。それがIIS / .Netにどの程度関与しているかはわかりませんが、PHPでは、グローバルインクルードファイルに1行追加するのと同じくらい簡単です。
CodeProjectには、以下の状況のいくつかを処理するために公開されたサンプルプロジェクト(http://www.codeproject.com/KB/aspnet/AspNetOptimizer.aspx?fid=1528916&df=90&mpp=25&noise=3&sort=Position&view=Quick&select=2794900)があります。 。
Microsoft .NETプラットフォームの場合、HTMLコードの縮小を生成するWebMarkupMinと呼ばれるライブラリがあります。
さらに、このライブラリをASP.NET MVC- WebMarkupMin.Mvcに統合するためのモジュールがあります。
http://code.mini-tips.com/html-minifier.htmlを試してください。これはHtml Minifierの.NETライブラリです。
HtmlCompressorは、コンテンツ構造を壊さずに余分な空白、コメント、その他の不要な文字を削除することにより、指定されたHTMLまたはXMLソースを縮小する、小さくて高速で非常に使いやすい.NETライブラリです。その結果、ページのサイズが小さくなり、読み込みが速くなります。コンプレッサーのコマンドラインバージョンも利用できます。