DjangoでJSONリクエストを圧縮する方法は?

compression django jquery json
DjangoでJSONリクエストを圧縮する方法は?

大量のJSON情報をjQuery(約40KB)に送信していますが、記述子が各オブジェクトごとに繰り返されなかった場合は、はるかに小さくなる可能性があります。 (例えば。 「名前」:、「タイトル」:「画像」:…​)

通常、次のようなJSONデータを送信します。

reply = json.dumps({'items':itemsArray})
return HttpResponse(reply, 'mimetype/javascript')

jQueryの `map()`関数を使用して、クライアント用にこれをgzipする(利用可能な場合)か、サードパーティのユーティリティを使用してサーバーとクライアント側のオブジェクト属性名の短縮バージョン間で変換する方法はありますか?

  1  1


ベストアンサー

この答えは時代遅れであり、従うべきではありません。 GZipミドルウェアを使用すると、暗号化が危険にさらされることが示されています。 古い答えは残しておきますが、この提案に従わないでください。

” ” ‘

GZipミドルウェアが必要な場合:https://docs.djangoproject.com/en/1.9/ref/middleware/#module-django.middleware.gzip[django.middleware.gzip.GZipMiddleware]。 もちろん、圧縮をWebサーバーで処理することもできます。 この例:http://httpd.apache.org/docs/2.4/mod/mod_deflate.html[mod_deflate]

3


GZippingは、Webサーバーとブラウザーによって処理されます。 したがって、WebサーバーとWebサーバーの構成を確認して、応答をgzipで圧縮する必要があります。

縮小のために:JSONはすでに非常に最小限のプロトコルです。 インデックスとインデックスをさらに短くしても、PHPのサーバーとJavaScriptのクライアントの両方にマッピングする必要があるため、おそらく何も見つかりません。 また、既存のミニファイヤを適応させるには注意が必要です。これは、ミニファイだけでなく、反対側で再度デコードする必要があるため、一貫性とマッピングが必要であるためです。

1


私は私のために働くために次のものを得ました:

単純にnginxに圧縮を行わせると、はるかにスムーズに機能しました。

/etc/nginx/nginx.confファイルに次の変更を加えて、gzip圧縮を「オン」にしました。 最新のブラウザのほとんどは、gzipされたデータを自動的に抽出(圧縮解除)するため、クライアント側で何もする必要はありません。

nginx.confファイル:

    http {

        #... other settings ...#

        ##
        # Gzip Settings
        ##

        gzip on;
        gzip_disable "msie6";

        gzip_vary on;
        gzip_proxied any;
        gzip_comp_level 6;
        gzip_buffers 16 8k;
        gzip_http_version 1.1;
        gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
    }

0


タイトルとURLをコピーしました