高性能WEB開発用画像圧縮

Dec 16, 2016 pm 03:39 PM

1. 画像サイズを減らす

画像が多い場合、画像サイズを減らすのがダウンロード速度を上げる最も直接的な方法です。
1. PNG8 は同じ効果がありますが、画像サイズが GIF より小さいため、GIF (非アニメーション画像) の代わりに PNG8 を使用してください。

2. Fireworks を使用して PNG 画像を処理します。当社製品の多くの PNG 画像は、アーティストによって Photoshop を使用して直接エクスポートされます。
その後、アーティストに Fireworks を使用して PNG を処理するように依頼しました (おおよその方法は、PNG8 として保存し、背景色を削除することを選択することです)。
処理後、100K画像のサイズは基本的に3/4に縮小されますが、画質もわずかに低下します。それを受け入れることができるかどうかによります。

3. Smush.it (http://www.smushit.com/ysmush.it/) を使用して画像を圧縮します。 Smush.it は、YUI チームによって作成されたオンライン画像圧縮 Web サイトです。
この Web サイトは、元の画像の品質に影響を与えることなく画像から一部のメタデータを削除するため、安心してこの Web サイトを圧縮に使用できます。
ただし、この圧縮率も比較的制限されています。


2. 画像の結合と分割

1. スプライトが画像を結合してリクエストの数を減らし、パフォーマンスを向上させることは誰もが知っています。ただし、あまりにも多くの画像を結合しないでください。画像が大きすぎると、この 1 枚の画像がこのページの表示に影響を及ぼします。

2. 場合によっては、大きな画像を複数の小さな画像に分割する必要があります。たとえば、製品のホームページには比較的少数の画像があり、大きなバナー画像は 1 つだけです。
すべてのブラウザで画像を同時にダウンロードできるため、分割せずに大きな画像を 1 つだけ使用すると、ダウンロード速度が遅くなります。


3. 透過画像処理

IE6 では透過 PNG 画像を表示できません。これは多くの開発者にとって悩みの種です。いくつかの方法の長所と短所を以下に紹介します。

1. AlphaImageLoader を使用します。IE6 はフィルターをサポートします。IE6 が PNG をサポートするようにするには、次の CSS コードを使用します。

#some-element { 
background: url(image.png); 
_background: none; 
_filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='image.png', 
sizingMethod='crop'); 
}
ログイン後にコピー

利点: 使いやすい

欠点: AlphaImageLoader は、透明な画像を処理するために大量のリソースを消費し、IE のメモリ使用量が急速に増加します。
また、AlphaImageLoader のすべての処理は同じスレッドで同期的に実行されるため、AlphaImageLoader が多すぎると UI のレンダリングがブロックされます。
_filter を使用すると、IE7 も認識できます。実際、IE7 で上記のコードを使用すると、IE7 は画像を直接使用せず、AlphaImageLoader を使用します。
注: 個人的には、AlphaImageLoader の使用をできるだけ避けることをお勧めします

2.
DD_belatedPNG (http://www.dillerdesign.com/experiment/DD_belatedPNG/) を使用すると、インターフェイス上のすべての透明な画像を同じ方法で簡単に処理できます。
長所: 使い方が簡単 (AlphaImageLoader より簡単)
短所: ページ上で処理する画像が多い場合、速度が比較的遅く、画像を動的に変更することができません。

3. VML
IE6 は VML をサポートしています。VML は次のとおりです:
HTML コード ヘッダーを変更します
html xmlns ="http://www.w3.org/1999/xhtml" xmlns:v >
スタイル タイプ ="テキスト/CSS" >
v:* { 動作 : url(#default#VML) } ; style="color: rgb(128, 0, 0);">style >
span style="color: rgb(128, 0, 0);">ヘッド >
ボディ >
v:image src ="image.png" />
スパン style="color: rgb(128, 0, 0);">ボディ>
span style="color: rgb(128, 0, 0);">html >


利点: 優れたパフォーマンス、高速な速度
短所: 使い方が複雑で、Firefox などのブラウザをサポートしていません。異なるブラウザが異なる HTML コードを出力するかどうかを判断する必要があります。

4. 複数のドメイン名から写真をダウンロードする

各ブラウザは同時に同じドメイン名に対して固定リクエストしか送信できないため、例えばIE6では2つあるようですので、複数のドメイン名を開いて画像リソースをリクエストすることが可能です。
たとえば、img1.abc.com、img2.abc.com。ただし、ドメイン名を開きすぎないでください。ドメイン名を解決して新しい接続を開くのに時間がかかり、速度が遅くなる可能性があります。通常、2 ~ 4 つのドメイン名で十分です。

5. IE6 での背景画像のキャッシュ

IE6 の背景画像のキャッシュは面倒なことで、IE6 で背景画像をキャッシュするには次の JS を使用することを多くの人が知っています
試してください。
document.execCommand("BackgroundImageCache", false, true);
}catch(e){}
しかし、これの効果はあまり良くありません。マウスの動きによって背景画像が変更されると、IE6 は常に画像要求を送信します (背景画像がダウンロードされている場合でも)。
戻り結果は304ですが、それでもかなり時間がかかります。この場合、次の回避策を使用できます。
ページ上で DIV 要素を直接使用して画像をロードします。これにより、ロードされた画像が実際にキャッシュされ、マウスが移動してもリクエストが送信されなくなります。

6. 画像のプリロード

ページがロードされた後、次のコードを使用して次のページの画像をプリロードします。次のページに入るときに、画像を再度ダウンロードする必要はありません

window.onload=function(){ 
var img = new Image(); 
img.src = "images/image.png"; 
img = null; 
};
ログイン後にコピー

上記は画像圧縮です。 WEB Content によって開発されました。その他の関連記事については、PHP 中国語 Web サイト (www.php.cn) にご注目ください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Python Web 開発フレームワークの比較: Django vs Flask vs FastAPI Python Web 開発フレームワークの比較: Django vs Flask vs FastAPI Sep 28, 2023 am 09:18 AM

Python Web 開発フレームワークの比較: DjangovsFlaskvsFastAPI はじめに: 人気のあるプログラミング言語である Python には、選択できる優れた Web 開発フレームワークが多数あります。この記事では、Django、Flask、FastAPI という 3 つの人気のある Python Web フレームワークの比較に焦点を当てます。機能、使用シナリオ、コード例を比較することで、読者がプロジェクトのニーズに合ったフレームワークをより適切に選択できるようになります。 1.ジャンゴ

Web 開発のために PHP で Twig テンプレート エンジンを使用する方法 Web 開発のために PHP で Twig テンプレート エンジンを使用する方法 Jun 25, 2023 pm 04:03 PM

Web 開発テクノロジーの継続的な発展に伴い、Web アプリケーションを開発するためのより柔軟で効率的なテンプレート エンジンを求める開発者が増えています。中でもTwigは非常に優秀で人気のあるPHPテンプレートエンジンで、Symfonyフレームワークをベースに開発されており、無制限の拡張をサポートしており、複雑なWebアプリケーションの構築に非常に適しています。この記事では、PHP での Web 開発に Twig テンプレート エンジンを使用する方法を紹介します。 1. Twig テンプレート エンジンの紹介 Twig は FabienPoten によって開発されました。

アーキテクチャの再考: Web アプリケーション開発に WordPress を使用する アーキテクチャの再考: Web アプリケーション開発に WordPress を使用する Sep 01, 2023 pm 08:25 PM

このシリーズでは、WordPress を使用して Web アプリケーションを構築する方法について説明します。これはコードを解説する技術シリーズではありませんが、フレームワーク、基礎、デザイン パターン、アーキテクチャなどのトピックを取り上げます。シリーズの最初の記事をまだ読んでいない場合は、それをお勧めしますが、この記事の目的として、前回の記事を次のように要約できます: つまり、ソフトウェアはフレームワーク上に構築でき、ソフトウェアはベースを拡張できます。 。簡単に言えば、フレームワークと基盤を区別します。この 2 つの用語は、同じものではありませんが、ソフトウェアでは同じ意味でよく使用されます。 WordPress はそれ自体がアプリケーションであるため、基盤となります。それは枠組みではありません。このため、WordPress に関して言えば、

MySQL と PostgreSQL: Web 開発のベスト プラクティス MySQL と PostgreSQL: Web 開発のベスト プラクティス Jul 14, 2023 pm 02:34 PM

MySQL と PostgreSQL: Web 開発のベスト プラクティス はじめに: 現代の Web 開発の世界では、データベースは不可欠なコンポーネントです。データベースを選択する場合、一般的な選択肢は MySQL と PostgreSQL です。この記事では、Web 開発で MySQL と PostgreSQL を使用するためのベスト プラクティスについて説明し、いくつかのコード例を示します。 1. 適用可能なシナリオ MySQL は、ほとんどの Web アプリケーション、特に高いパフォーマンス、スケーラビリティ、使いやすさを必要とするアプリケーションに適しています。

他の Web 開発言語と比較した C++ の長所と短所は何ですか? 他の Web 開発言語と比較した C++ の長所と短所は何ですか? Jun 03, 2024 pm 12:11 PM

Web 開発における C++ の利点には、速度、パフォーマンス、低レベル アクセスが含まれますが、一方で、急峻な学習曲線やメモリ管理要件などの制限もあります。 Web 開発言語を選択する場合、開発者はアプリケーションのニーズに基づいて C++ の利点と制限を考慮する必要があります。

ソフトウェア開発における Golang の一般的な適用シナリオは何ですか? ソフトウェア開発における Golang の一般的な適用シナリオは何ですか? Dec 28, 2023 am 08:39 AM

Golang は開発言語として、シンプルさ、効率性、強力な同時実行パフォーマンスという特徴を備えているため、ソフトウェア開発における幅広いアプリケーション シナリオを備えています。いくつかの一般的なアプリケーション シナリオを以下に紹介します。ネットワーク プログラミング Golang はネットワーク プログラミングに優れており、特に高同時実行性と高性能サーバーの構築に適しています。豊富なネットワーク ライブラリが提供されており、開発者は TCP、HTTP、WebSocket、その他のプロトコルを簡単にプログラムできます。 Golang の Goroutine メカニズムにより、開発者は簡単にプログラミングできます

Python 開発者に必要なハードスキルとソフトスキルのバランス Python 開発者に必要なハードスキルとソフトスキルのバランス Sep 10, 2023 am 11:40 AM

Python は現在最も人気のあるプログラミング言語の 1 つであり、多くの開発者が Python 開発分野に参加するようになっています。ただし、優れた Python 開発者になるには、プログラミング言語のハード スキルを習得するだけでなく、特定のソフト スキルも習得する必要があります。この記事では、Python 開発者がハード スキルとソフト スキルのバランスをとる方法について説明します。 Python 開発の世界では、ハード スキルとは、開発者に必要な技術知識とプログラミング知識を指します。 Python 言語自体はシンプルで柔軟性があり、習得も使用も簡単です。

C++ Web 開発を学ぶにはどのようなスキルとリソースが必要ですか? C++ Web 開発を学ぶにはどのようなスキルとリソースが必要ですか? Jun 01, 2024 pm 05:57 PM

C++ Web 開発では、C++ プログラミング、ネットワーク プロトコル、データベースの知識の基本を習得する必要があります。必要なリソースには、cppcms や Pistache などの Web フレームワーク、cppdb や pqxx などのデータベース コネクタ、CMake、g++、Wireshark などの補助ツールが含まれます。単純な HTTP サーバーの作成などの実践的なケースを学ぶことで、C++ Web 開発の旅を始めることができます。

See all articles