

<https://pisuke-code.com/javascript-usage-of-zlib-js/>

上記がその詳細の記事なのですが、専門的過ぎて初心者の私にはよく理解できなかったので、易しく教えてくださるプロフェッショナルの方よろしくお願い致します。

Yahoo!ショッピングストアを利用しており、トリプル機能を使ってhtmlでショップを一から作っています。そのショップページ表示速度を上げるために.htaccessを使ってGzip圧縮とキャッシュ設定しようとしたところ、.htaccessが使えないことが分かりました。

それで調べたところ、JavaScriptでGzip圧縮できる方法があるのを知りました。

ですが、重複しますが知識がなくお手上げ状態です。

html/css/js の３つをJavaScriptを利用してGzip圧縮させたいです。

どのようなソースコードを記載すればよろしかったでしょうか？

何卒よろしくお願い致します。


CC BY-SA 4.0
2020-03-24T23:11:30.417
64091
2020-03-25T14:21:54.430
2020-03-25T00:03:45.873
38262
38262
question
javascript
JavaScriptでGzip圧縮できるライブラリ「Zlib.js」の使い方を教えてください。


手段が目的になってしまっています。「ページ速度を上げる」のであれば、遅い箇所を特定し、その部分を改善する必要があります。  
Zlib.jsを使用してもページ速度は上がりません。

* * *

>
> Googleのスピードなんとかと言う、表示速度を計測するサイトを利用したところ、html/css/javascriptをgzipで圧縮するようにとありました。（略）
> これでは速度は上がらないのですか？

上がりません。[パレートの法則](https://ja.wikipedia.org/wiki/%E3%83%91%E3%83%AC%E3%83%BC%E3%83%88%E3%81%AE%E6%B3%95%E5%89%87)を理解すべきです。仮にZlib.jsを使用することで当該箇所の所要時間が極限まで短縮でき
`0` となったとして、ページ速度全体に占める割合がわずかであれば、ページ速度そのものは上がりません。  
例えば、データの準備に20秒、通信に1秒、描画に3秒（数値はでたらめです）要していた場合、Zlib.jsで通信が効率化されたとしても全体としては24秒→23秒でしかない、という話です。

ですから最初に指摘したように、遅い箇所を特定する必要があります。


CC BY-SA 4.0
2020-03-25T00:00:09.077
64093
2020-03-25T14:21:54.430
2020-03-25T14:21:54.430
4236
4236
64091
answer


ショップのページを閲覧者が見るとき遅いのであれば、改善するべきはサーバ→閲覧者方向のデータ転送に要する時間です。もし「データ転送速度が遅い（回線が細い）」のであればサーバ側で
`gzip` 圧縮を行うことでデータ転送量を減らす（代わりにサーバ CPU 負荷は上昇します) ことができます。これをする手段として

  * `httpd.conf` で `mod_deflate` を有効にする
  * `php.ini` で `zlib.output_compression = on` を有効にする ([php](/questions/tagged/php "'php' のタグが付いた質問を表示") を使っているとき)
  * 事前に静的コンテンツを `gzip` 圧縮しておき `.htaccesss` で自動 `rewrite` を有効にする

などがあります。 <https://syncer.jp/how-to-make-gzip>

いずれにせよ設定ファイル `httpd.conf` や `.htaccess`
を操作する権限が必要です。全くないなら手が付けられません。あと著名どころのサイトなら上記のような設定は既にされている可能性がありますので確認してみると良さそう。

遅い原因は回線太さとは限らないので、あてずっぽうで対策しても無駄です。どこが遅いのか調査してから手を付けるべきでしょう。

* * *

紹介記事は逆方向、閲覧者→サーバ方向のデータ転送時間の短縮のために閲覧者側でアップロード前にデータを圧縮するためのものです。なので紹介記事を参考にしてもサーバ→閲覧者方向の転送時間は短くなりません。あなたの目的にはそぐわないということになります。


CC BY-SA 4.0
2020-03-25T03:30:05.773
64099
2020-03-25T09:58:37.147
2020-03-25T09:58:37.147
8589
8589
64091
answer