6

私はここにかなり大きなJavaScriptファイルを持っており、それを自分のWebサイトに埋め込みたいと思っています。HTTPサーバーは、ファイルをブラウザーに配信する前にファイルをGZIPで圧縮できるほどスマートです。

ただし、GoogleChromeとSafariでテストしました。

Chromeでは、非常にうまく機能します。400Kは約100kに圧縮されます。

最初

2番目

しかし、Safariの圧縮は機能しません:

第3

第4

面白いことに、gz2b.pngでは、content-encodingが「gzip」に設定されていることがはっきりとわかります。


注:ファイルが「.gz」で終了できない、またはSafariがGZIPを受け入れないSafariのGZIPバグについてはすでに読んでいます。私のファイルは.gzで終わっていないので、この問題は問題にならないはずです。

4

3 に答える 3

10

iOS7 SafariモバイルiPadでウェブサイトの読み込み時間を最適化しようとしているときに、私もこの問題に遭遇しました。

  • エンコード=非圧縮ファイルサイズ、サーバーから
  • デコード済み=非圧縮ファイルサイズ、ローカル
  • 転送済み=非圧縮ファイルサイズ+送受信されたヘッダー
  • Content-Length=サーバーから送信された圧縮ファイル

Safariは、デバッガーでこれらの数値を表す非常に奇妙な方法を選択しました。

于 2014-02-21T19:39:37.090 に答える
8

Safariに送信されたHTTPヘッダーは、圧縮されていることを示しています(Content-Encoding:gzipヘッダーがあり、Content-Lengthは119406バイトであると記載されています) -WebInspectorで430.61と表示されている太字以上のものを信頼します。一番上の列の両方の数値をどのように決定するのか、わかりません。

WiresharkでHTTPリクエストをスニッフィングすると、ネットワークを通過するバイト数を確認できます。

于 2012-09-11T13:09:19.863 に答える
1

これは少し前のことですが、私は非常によく似た問題、またはおそらくこの問題の原因に遭遇しました。このようにサファリのgzipでデータを圧縮する場合:

gzip jquery.min.js

この問題に関する他の多くのスレッドで言及されているように、gzipでエンコードされたファイルストリームとして正しく指定されている場合や、jquery.jgzに名前が変更されている場合でも、Safariで失敗するjquery.min.js.gzが発生します。これは、ファイル名がgzipファイルにエンコードされているためと思われます。

このようにgzipファイルをエンコードする場合:

cat jquery.min.js | gzip > jquery.jgz

次に、数バイト小さく、Safariで問題なく動作するファイルが作成されます。

于 2015-08-23T16:45:50.980 に答える