YahooトリプルにJSONファイルを置き、同じ階層のHTMLにおいてAjaxで取得して利用しています。
最近JSONファイルが肥大化してきて取得に時間がかかるようになったので、gzipで圧縮しようと考えました。
しかし、こちらのサイトによるとYahooトリプルはgzip圧縮転送に対応しておらず、恐らく.htaccessも使えません。
一応試しに以下のようにリクエストヘッダにAccept-Encoding : gzip
を付与して取得してみましたが、やはり駄目でした。
js
1$.ajax({ 2 beforeSend: function(xhr){ 3 xhr.overrideMimeType('text/html;charset=UTF-8'); 4 }, 5 type: 'GET', 6 url: 'data.json', 7 dataType: 'json', 8 timeout: 10000, 9 headers: { "Accept-Encoding" : "gzip" }, 10}).done(function(json) { 11 // 成功時の処理 12}).fail(function(XMLHttpRequest, textStatus, errorThrown) { 13 // 失敗時の処理 14});
予めgzip圧縮したJSONファイルを置いて、レスポンスヘッダにContent-Encoding: gzip
を付与すればブラウザ側で解凍してくれそうですが、
自分が調べた限りではJavaScriptでレスポンスヘッダをいじる機能はないようです。
この問題の解決策、または代替の手段をご存知の方がいらっしゃいましたらご教授の程よろしくお願いします。
補足
- JSONをまるごと取得するのではなくて必要なデータだけ持ってくる方法もありますが、大幅な改修が必要になるので避けたいです。
- gzip解凍に対応していないIEのためにブラウザの判定が必要かもしれませんが、今回は考えません。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/01/09 05:45
2020/01/09 05:47
2020/01/09 05:56
2020/01/09 08:22
2020/01/09 08:29
2020/01/09 08:36