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

データ 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 までご連絡ください。
Web開発にとってHTML属性が重要なのはなぜですか?Web開発にとってHTML属性が重要なのはなぜですか?May 12, 2025 am 12:01 AM

htmlattributesarecrucialinwebdevevermentmentmentmentmentmentmentmention behavior、like、andfunctionality.theyenhance -interactivity、accessibility、andseo.forexample、thesrcattribute intagsimpactsseo

Alt属性の目的は何ですか?なぜそれが重要なのですか?Alt属性の目的は何ですか?なぜそれが重要なのですか?May 11, 2025 am 12:01 AM

ALT属性は、HTMLのタグの重要な部分であり、画像の代替テキストを提供するために使用されます。 1.画像をロードできない場合、ALT属性のテキストが表示され、ユーザーエクスペリエンスが向上します。 2。スクリーンリーダーは、ALT属性を使用して、視覚障害のあるユーザーが写真の内容を理解するのに役立ちます。 3. ALT属性のEnginesインデックステキストを検索して、WebページのSEOランキングを改善します。

HTML、CSS、およびJavaScript:例と実用的なアプリケーションHTML、CSS、およびJavaScript:例と実用的なアプリケーションMay 09, 2025 am 12:01 AM

Web開発におけるHTML、CSS、およびJavaScriptの役割は次のとおりです。1。HTMLは、Webページ構造の構築に使用されます。 2。CSSは、Webページの外観を美化するために使用されます。 3. JavaScriptは、動的な相互作用を実現するために使用されます。タグ、スタイル、スクリプトを通じて、これら3つは最新のWebページのコア関数を構築します。

Lang属性をタグにどのように設定しますか?なぜこれが重要なのですか?Lang属性をタグにどのように設定しますか?なぜこれが重要なのですか?May 08, 2025 am 12:03 AM

タグのLang属性を設定することは、WebアクセシビリティとSEOを最適化する重要なステップです。 1)ラング属性をタグに設定します。 2)多言語コンテンツでは、ようなさまざまな言語パーツのLang属性を設定します。 3)「EN」、「FR」、「ZH」などのISO639-1標準に準拠する言語コードを使用します。Lang属性を正しく設定すると、Webページと検索エンジンランキングのアクセシビリティが向上します。

HTML属性の目的は何ですか?HTML属性の目的は何ですか?May 07, 2025 am 12:01 AM

htmlattributeSareSientionalentionalentionalentionalentiallyance'functionalityandappearance.theyaddinformationtodefinebehavior、light、and interaction、makewebsitesteractive、responsive、andviseallyappaleal.attributeslikesrc、href、class、型、およびdoadabledransform

HTMLでリストを作成するにはどうすればよいですか?HTMLでリストを作成するにはどうすればよいですか?May 06, 2025 am 12:01 AM

toreatealistinhtml、useforunorderedlistsandfororderedlists:1)forunorderedlists、wrapitemsinanduseforeachitem、renderingasabulletedlist.2)

HTMLアクション:Webサイト構造の例HTMLアクション:Webサイト構造の例May 05, 2025 am 12:03 AM

HTMLは、明確な構造のWebサイトを構築するために使用されます。 1)Webサイト構造などのタグを使用し、定義します。 2)例は、ブログとeコマースのウェブサイトの構造を示しています。 3)誤ったラベルネスティングなどの一般的な間違いを避けてください。 4)HTTP要求を削減し、セマンティックタグを使用してパフォーマンスを最適化します。

HTMLページに画像を挿入するにはどうすればよいですか?HTMLページに画像を挿入するにはどうすればよいですか?May 04, 2025 am 12:02 AM

to inertanimageintoanhtmlpage、usethetagwithsrcandaltattributes.1)usealttextforaccessibilityandseo.2)emplencesrcsetForresponsiveimages.3)applylazyloadingwithloading = "lazy" tooptimizeperformance.4)

See all articles

ホット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 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

SublimeText3 中国語版

SublimeText3 中国語版

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

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!