ホームページ ウェブフロントエンド htmlチュートリアル データ URI と MHTML がすべてのブラウザー_HTML/Xhtml_Web ページ制作を完全に解決します

データ URI と MHTML がすべてのブラウザー_HTML/Xhtml_Web ページ制作を完全に解決します

May 16, 2016 pm 04:42 PM
data uri

データ URI

データ URI は、小さなファイルをドキュメントに直接埋め込むために RFC 2397 で定義されたスキームです。次の構文を使用すると、小さなファイルを指定したエンコーディングに変換し、ページに直接埋め込むことができます:

データ:[][;base64],

  1. MIME-type: 埋め込みデータの MIME を指定します。その形式は [type]/[subtype] パラメータです。たとえば、png 画像に対応する MIME は image/png です。パラメータは追加情報の指定に使用でき、多くの場合、text/plain や text/htm などのテキスト エンコード方法の指定に使用されます。デフォルトは text/plain;charset=US-ASCII です。
  2. base64: ステートメントに続くデータのエンコードは base64 です。それ以外の場合、データはパーセントでエンコードされる (つまり、コンテンツを URLencode する) 必要があります。

前世紀HTML4.01 ではデータ URI スキームが導入されました。現在IE6 と IE7 を除くすべての主要なブラウザはをサポートしていますが、IE8 のサポートはデータ URI はまだ制限されています 。サポートされるのはオブジェクト (写真のみ)、img、input type=image、リンク、CSS の URL のみであり、データ サイズは 32K を超えることはできません。

利点:

  1. HTTP リクエストの数を減らします。TCP 接続の消費がなく、同じドメイン名での同時ブラウザ数の制限もありません。
  2. ファイルが小さい場合、帯域幅が減少します。エンコード後のデータ量は増加しますが、http ヘッダーのデータ量がファイルのエンコードの増分よりも大きい場合、帯域幅は減少します。
  3. HTTPS サイトの場合、HTTPS と HTTP を併用するとセキュリティ プロンプトが表示されます。HTTPS は HTTP よりも高価であるため、この点ではデータ URI の方が明らかな利点があります。
  4. マルチメディア ページ全体をファイルとして保存できます。

欠点:

  1. 再利用できません。同じコンテンツを同じドキュメントに複数回適用すると、複数回繰り返す必要があり、データ量が増加し、ダウンロード時間が長くなります。
  2. は単独でキャッシュできないため、それを含むドキュメントが再ロードされるときに再ロードされます。
  3. クライアントは再デコードして表示する必要があるため、ポイントの消費量が増加します。
  4. データ圧縮はサポートされていません。base64 エンコードするとサイズが 1/3 増加し、urlencoding 後はデータ量がさらに増加し​​ます。
  5. セキュリティ ソフトウェアのフィルタリングには適しておらず、一定のセキュリティ リスクもあります。

MHTML

MHTML は MIME HTML (MultiPurpose Internet Mail Extension HTML) の略称で、マルチメディア ページのすべてのコンテンツを同じドキュメントに保存するための RFC 2557 で定義されたソリューションです。この解決策は、IE5.0 からサポートするために Microsoft によって提案され、Opera9.0 もサポートを開始しました。Safari はファイルを .mht (MHTML ファイル拡張子) 形式で保存できますが、その表示はサポートしていません。

MHTML はデータ URI に比較的似ており、より強力な機能とより複雑な構文を備えており、データ URI の「再利用できない」という欠点はありません。ただし、MHTML は、次のような柔軟性と利便性を備えていません。リソース参照の URL。mht ファイル内の相対アドレスにすることができます。それ以外の場合は、絶対アドレスにする必要があります。 hedger の 《HTML に埋め込まれたクロスブラウザ Base64 エンコード画像》IE のソリューションでは、Content-type: message/rfc822 が宣言されているため、コンテンツが MHTML に従って解析されます。この場合、《MHTML – データが必要な場合: IE7 以下の URI》 などの絶対パスを使用する必要があります。

適用

データ URI と MHTML の組み合わせは、すべての主流ブラウザの問題を完全に解決できます。これらはキャッシュして再利用できないため、ページ内で直接使用するのには適していませんが、CSS および JavaScript ファイルでの使用には適しています。写真を適切に使用すると、次のような大きな利点があります:

  1. 大規模な Web サイトの CSS が大量の画像リソースを参照するようになり、リクエストの数が大幅に削減されました。
  2. CSS と JavaScript の両方をキャッシュすることができ、間接的にデータのキャッシュを実現します。
  3. CSS を使用すると、データ URI の再利用の問題を解決できます
  4. さようならCSS スプライト、CSS スプライトはリクエストの数を減らすように見えましたが、不確実な状況では例外をもたらすに加えて、CSS スプライトには人工画像のマージも必要です。はマージ ツールですが、効果的にパズルを解くには依然として多くの時間を費やす必要があり、メンテナンスが困難になります。特定の設計原則に従う場合、CSS を記述するために CSS スプライトを完全に放棄し、最終的にサーバーにアップロードするときに画像をデータ URI と MHTML に変換するツールを使用できます。たとえば、 "データ URI を使用してスタイル シートと画像「」にある Python で実装されたツールを使用すると、時間を大幅に節約できます。
  5. Base64 エンコードでは画像ファイルが 1/3 増加します。データ URI と MHTML を同時に使用すると 2/3 の増加に相当しますが、CSS と JavaScript は gzip 圧縮を使用できるため、画像ファイルの 2/3 を節約できます。データ量が増えるため、gzip 圧縮後の最終データ量 を使用すると、(1 1/3) * 2 * (1/3) = 8/9 となり、最終的なトラフィックが削減されます。

CSS でのデータ URI と MHTML の実装を容易にするために、データ URI と MHTML ジェネレーターを作成しました。生成されたデータ URI と MHTML アプリケーションの例をご覧ください。

CSS ファイルで MHTML を使用する場合、URL は絶対パスを使用する必要がありますが、これは柔軟性が非常に低いため、次のような CSS 式 (DEMO) を使用して解決することを検討できます。

/* http://old9.blogsome.com/2008/10/26/css-expression-reloaded/
http://dancewithnet.com/2009/07/27/ get-right-url-from-html/
*/
*background-image:expression(function(ele){
ele.style.backgroundImage = 'url(mhtml:'
ドキュメント。 getElementByid( 'data-uri-css')

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

nginxの場所でuriをインターセプトする方法 nginxの場所でuriをインターセプトする方法 May 18, 2023 pm 12:07 PM

注: location の root および aliasroot 命令は、root によって設定されたディレクトリに検索ルートを設定するだけです。つまり、uri は切り詰められません。代わりに、元の uri がファイルを検索するディレクトリにジャンプするために使用されます。 aias 命令は一致する URI を切り捨て、エイリアスで設定したパスと残りの URI をサブパスとして使用して、その場所にある proxy_pass の URI を見つけます。proxy_pass の URL に URI がない場合、末尾が "/ 「」の場合、一致する URI は切り詰められます。末尾が「/」でない場合、proxy_pass URL に uri が含まれている場合、一致する URI は切り詰められません。

データフォルダにはどんなデータが入っているのでしょうか? データフォルダにはどんなデータが入っているのでしょうか? May 05, 2023 pm 04:30 PM

データ フォルダーには、ソフトウェア設定やインストール パッケージなどのシステム データとプログラム データが含まれています。データ フォルダー内の各フォルダーは、データ ファイルがファイル名データを参照しているか拡張子を参照しているかに関係なく、異なる種類のデータ ストレージ フォルダーを表します。 , これらはすべて、システムまたはプログラムによってカスタマイズされたデータ ファイルです。データは、データ ストレージのためのバックアップ ファイルです。通常、meidaplayer、メモ帳、または Word で開くことができます。

Nginx Location ディレクティブの URI 一致ルールとは何ですか? Nginx Location ディレクティブの URI 一致ルールとは何ですか? May 14, 2023 pm 11:58 PM

1. はじめに location ディレクティブは http モジュールの中核となる構成です. 事前定義された URL 一致ルールに基づいてユーザーから送信されたリクエストを受け取ります. 一致結果に基づいてリクエストはバックエンド サーバーに転送されます. 不正なリクエストは直接拒否されて返されます. 403、404、500エラー処理など2. ロケーション命令の構文 location[=|~|~*|^~|@]/uri/{…} または location@name{…} 3. URI マッチングモード ロケーション命令は 2 つのマッチングモードに分かれています: 1> 通常文字列のマッチング: = で始まるルール、または先頭文字 (~) なしのルール 2> 通常のマッチング: ~ または ~* で始まる通常のマッチングを示し、~*

mysqlのロードデータが文字化けした場合はどうすればよいですか? mysqlのロードデータが文字化けした場合はどうすればよいですか? Feb 16, 2023 am 10:37 AM

mysql ロード データの文字化けの解決策: 1. 文字化けしている SQL ステートメントを見つけます; 2. ステートメントを「LOAD DATA LOCAL INFILE "employee.txt" INTO TABLE EMPLOYEE Character set utf8;」に変更します。

xdata と data の違いは何ですか xdata と data の違いは何ですか Dec 11, 2023 am 11:30 AM

違いは次のとおりです: 1. 通常、xdata は独立変数を指しますが、data はデータ セット全体を指します。2. xdata は主にデータ分析モデルの確立に使用され、data はデータ分析と統計に使用されます。3. xdata は通常、使用されます。回帰分析、分散分析、予測モデリングの場合、さまざまな統計手法を使用してデータを分析できます; 4. xdata には通常、データの前処理が必要であり、データには完全な元のデータが含まれる場合があります。

URLとURIの違いは何ですか URLとURIの違いは何ですか Aug 10, 2023 pm 05:15 PM

URL と URI の違いは次のとおりです: 1. URI はインターネット上のリソースを識別するために使用される文字列のシーケンスですが、URI はリソースの場所ではなく、その識別子のみに焦点を当てます; 2. URL は場所に関する情報を提供します。インターネット上の場所に関する詳細情報であるのに対し、URI は URL だけでなく、リソースを識別するために使用される他の形式 (URN など) もカバーする広い概念です。3. URL は特別なタイプの URI であり、 location インターネット上のリソースですが、URI はリソースを一意に識別して名前を付けるために使用されるより広範な識別子です。

売り上げよりも利益が大きい:人道的なAiピンは商業的災害になりつつある 売り上げよりも利益が大きい:人道的なAiピンは商業的災害になりつつある Aug 08, 2024 pm 01:14 PM

Humane Ai Pin の発売直後、痛烈なレビューにより、当初宣伝されていた機能のほとんどが適切に動作しないか単に欠落しており、バッテリー寿命が短かったため、この AI ガジェットは市場に出す準備ができていなかったことが明らかになりました。

vueコンポーネント内のデータは関数にできないのでしょうか? vueコンポーネント内のデータは関数にできないのでしょうか? Dec 19, 2022 pm 05:22 PM

いいえ、vue コンポーネント内のデータは関数である必要があります。 Vue のコンポーネントは再利用するために使用されますが、データの再利用を防ぐために関数として定義されます。 vueコンポーネント内のデータデータは相互に影響を及ぼさないように分離し、コンポーネントを再利用するたびにデータデータを一度コピーし、その後、再利用した場所でコンポーネント内のデータデータを変更する場合、再利用したローカルコンポーネントのデータデータに影響を与えない場合は、data 関数を通じてコン​​ポーネントの状態としてオブジェクトを返す必要があります。

See all articles