Greeringsすべて圧縮データとJavaScriptで解凍
ジャバスクリプト(クライアント)を使用してデータを解凍後、PHP(サーバー)から送信されたデータを圧縮してする方法はありますか?
はいあなた
Greeringsすべて圧縮データとJavaScriptで解凍
ジャバスクリプト(クライアント)を使用してデータを解凍後、PHP(サーバー)から送信されたデータを圧縮してする方法はありますか?
はいあなた
に感謝。 JSONのような正常な形式でGZIP圧縮を使用して送信しているデータを提供するようにサーバーを構成すると、JavaScriptでAjax呼び出しを行うだけでブラウザによって自動的に解凍されます。
これを設定するには、these linesを.htaccess
ファイルにコピーします。 (私はあなたがPHPを提供するための最も一般的なプラットフォームであるため、Apacheを使用していると仮定します)。
これはphpで両方の圧縮と解凍と同じです。すべてのAjax呼び出しがPHPを実行するだけです。 –
これはPHPで両方の圧縮と解凍と同じですか?解凍はクライアント側で行われます---ブラウザではなく、JavaScriptで行われますが、確かにPHPでは行われません。 – Domenic
ブラウザは、サーバにphp関数(またはasp/jsp多分)を呼び出すように要求します。 AJAXの呼び出しは、クライアント側でjavascriptで開始されますが、サーバー側でのみ終了します。 –
あなたの応答オーバーヘッドをできるだけ小さく保つなら、あなたの目標はJSON DB: a compressed JSON formatかもしれません。
ここで@ Domenicの回答に同意する必要があります。 @Nishchay Sharmaは道を離れています。
私が追加する唯一のことは、すべてを圧縮するようにサーバー全体を構成するのではなく、スクリプト単位で行う場合です。PHPのgzencode()関数を使用して目標を達成するのは簡単ですヘッダコール:例えば
http://www.php.net/manual/en/function.gzencode.php
、あなたがPHPページにAjax呼び出しを介してデータの巨大なセットを取得しているとしましょう。あなたは次のようにgzencodeを使用するためにPHPのページを設定できます。
<?php
$someBigString = gzencode('blahblah...blah');
header("Content-type: text/javascript");
header('Content-Encoding: gzip');
echo $someBigString;
?>
(これはもちろん、過度に単純化しているが、私はそれをシンプルに保つことだ)
あなたのJS Ajax呼び出しがダウンしてデータを引っ張ってきますgzipヘッダーを見て、それを自動的に解凍してください。私は個人的に、圧縮されていないとサイズが数メガバイトになる可能性がある、非常に大きなGoogle Mapsの地理座標データセットに対してこの手法を使用しています。それは容易ではありませんでした!
ありがとうたくさんの日を保存するかもしれない:) –
レスポンスを 'gzip 'して、ブラウザがHTTPプロトコルレベルで動作するように解凍させることができます。または、JSで圧縮解除する特定の理由はありますか?あなたは自分でロジックを実装しなければなりません(または、もちろんサードパーティライブラリを見つけることもできます)。 –