【发布时间】:2015-11-06 08:29:37
【问题描述】:
我们有一个环境,每个用户都可以获得不同的 html/js/css 资源。我正在使用以下代码来压缩和传输 java 脚本资源:
public static byte[] compress(String str) throws IOException {
if (str == null || str.length() == 0) {
return null;
}
ByteArrayOutputStream obj=new ByteArrayOutputStream();
GZIPOutputStream gzip = new GZIPOutputStream(obj);
gzip.write(str.getBytes("UTF-8"));
gzip.close();
return obj.toByteArray();
}
...
HttpServletResponse raw = response.raw();
raw.setBufferSize(file.length().intValue());
ServletOutputStream servletOutputStream = raw.getOutputStream();
servletOutputStream.write(compress(FileUtils.readFileToString(file)));
servletOutputStream.flush();
servletOutputStream.close();
...
使用 chrome 网络选项卡检查问题,300KB 压缩数据的下载时间为 2 秒 - 这似乎不合理。 问题不在于带宽或码头本身,因为静态资源传输时间很快。
【问题讨论】: