WebグラフィックにSVGまたはSVGZを使用する必要があるのはいつですか?


22

私の理解から、

SVGZは、SVGの圧縮ファイルタイプです。私はSVG画像の使用が大好きで、SVG画像を多く使用しました。

私がそれらを使用したすべての時間で、私は数百キロバイトを超えるグラフィックを持ったことがありませんでした。

レスポンシブWebサイトの作成中に、レスポンシブグラフィックスにSVGを使用します。私のお気に入りのデザインスタイルはベクターベースのグラフィックなので、私もそれらを使用します。私の最も強いデザインの強みは、特にグラフィックデザインに関してはイラストレーターです。

SVGグラフィックを使用するもう1つの理由は、腕や脚など、グラフィックの特定の要素を簡単にアニメーション化できることです。

特に、ページの全体にまたがる都市のような背景要素は、ライトのちらつきなどをアニメーション化します。

ファイルが圧縮されている場合、SVGコードが失われるため、アニメーション化できませんか?

SVGだけでなくSVGZを使用する理由はありますか?

更新

古代のCS3がSVGZを保存できることを知ったので、SVGとSVGZを作成して、それらがWebでどのように動作するかを確認することにしました。

テスト後、SVGZファイルタイプで非常に予期しない問題が発生しました。(Chrome、Firefox、およびIEでテスト済み)画像の直接URLにアクセスすると、エラーが発生します。これらのファイルタイプのSVGコードにアクセスできないと仮定していますが、フィドルを作成した後、画像を表示することさえないようです。

これらはウェブにとって役に立たないのですか?

.svg

.svgz

JSFIDDLE


一部.svgzは適切なMIMEタイプを使用して提供されるWebサーバー構成の問題設定のようです。stackoverflow.com/ questions / 16725380 / svgz-doesnt-displayを参照してください。個人的にIE8のサポートが必要なため、ウェブ上のSVG /ベクターグラフィックスには常にRaphael.jsを使用しています
user56reinstatemonica8

うーん、非常に便利なリンクをありがとう。を使用する理由はありますSVGZか?画像ファイルのサイズを小さくするといいと思いました。an SVGZがWebにとって有用であるか、それとも本当に有用であるかを知りたいのです。
ジョシュパウエル

それが機能する場合、ファイルサイズを大幅に削減します。これは、複雑なもの(たとえば、ズーム可能な非常に詳細なSVG世界地図)でインタラクティブ機能を使用している場合に便利です。zファイルサイズと他のほとんど何を削減するために使用される手段のgzip圧縮。
user56reinstatemonica8

@JoshPowell:ほとんどのhttpサーバーがgzip圧縮でコンテンツを送信することを考えると、この質問の目的はわかりません。また、一部のサーバーでは、ファイルに.svg.gzという名前を付けると、ブラウザーは元のファイルが圧縮されていないという情報を受け取ります。
-user2284570

回答:


9

圧縮されたsvgのサポートはブラウザによって異なりますが、エンコードに関する情報でsvgzファイルに適切にフラグを立て、受信時にブラウザにデコードする方法を明示的に指示するようにサーバーを構成する必要があります。

svgzのサーバー応答は、「Content-encoding:gzip」を含むように構成する必要があります

svg     Content-Type: image/svg+xml

svgz    Content-Type: image/svg+xml
        Content-Encoding: gzip

Apache Webサーバーの場合、これは.htaccessファイルを介して実現できます。

AddType image/svg+xml svg svgz
AddEncoding gzip svgz

サーバーに配置する前にオンザフライで圧縮するか、焼き付けるかに関係なく、Content-encodingをヒントにする必要があります。このようなアセットの場合、事前に圧縮する方が良いと思います。それ以外の場合、ファイルのリクエストごとにサーバーのCPUを消費します。これは大したことではないように思えるかもしれませんが、これは、たとえば米国のヘルスケアWebサイトをダウンさせるような非最適化の問題です。


サーバーまたはプラットフォームがまったくインテリジェントであり、圧縮を実行すると、キャッシュできるため高度に最適化されます。これは、ヘルスケア.govはもちろん、サイトをクラッシュさせるようなものではありません。
ジョシュケーニッヒ

11

これはあなたが期待している答えではないかもしれませんが、Webの場合、SVGZファイルを使用する必要はありません。理由は、SVGZファイルは単にGzip圧縮されたSVGであるためです。

最新のWebサーバーは、アセットを提供する前にこのGzip圧縮を行うことができます(詳細についてはStackOverflowのこの回答を参照してください)。したがって、圧縮時に50KBの300KB SVGがある場合、Webサーバーによって自動的にGzip圧縮されるとほぼ同じになります。そのため、300 KBに達することはありません。50KBになり、ブラウザによって圧縮解除されます。


圧縮ファイルはどこかにキャッシュされていますか?5000人の訪問者に対して、これらのsvgアセットを何度もgzipするのは大変な作業です。
タイムボカン

@bokan:一部のサーバーは、.gzファイル拡張子を追加することでコンテンツを事前に圧縮するオプションを提供します。したがって、クライアントがindex.htmlを検索すると、サーバーはindex.html.gzという名前の事前に圧縮されたファイルで応答します。
user2284570

@ user2284570:したがって、手動で.gzを作成する必要があります。そうしないと、ファイルを送信するたびにファイルが圧縮されます。これはサーバーにとって多くの作業です。
bokan

1
@bokan:はい。多くの場合、単純なコンテンツエンコード圧縮よりも多くの追加サーバー構成が必要です。IE5でもサポートしています。ディレクトリ内のすべての静的ファイルを圧縮するスクリプトを作成するのは簡単です。2番目のケースでは、これによりディスク容量と帯域幅の両方が節約されます。
user2284570
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.