有效地处理角度为304的响应状态代码

时间:2016-11-16 22:16:24

标签: angularjs http caching http-status-code-304

I know当服务器返回304 NOT MODIFIED时,浏览器会透明地处理它,并且任何客户端代码都无法直接使用它。我的问题是该列表非常庞大(未经压缩的4 MB)并将其转换为JSON需要很长时间(在我的桌面上为70毫秒,在重要的Android上要长得多)。

我不想在这里使用angularjs缓存,因为必须完成HTTP请求。我不想使用部分列表。

我想使用E-Tag标头并入侵defaultHttpResponseTransform会有所帮助,但我想知道是否有一种避免这种开销的标准方法。

1 个答案:

答案 0 :(得分:1)

只需比较代码标头中的$cache,即可将E-tag与浏览器缓存结合使用。由于浏览器始终模拟200状态代码,因此无法捕获304状态。有一个库可以处理这类问题https://www.npmjs.com/package/angular-http-etag。但解析json的问题是你无法避免的,因为localStorage也将json序列化为字符串,因此你必须以醚方式解析它。我的建议是将json分成更小的块并根据需要请求它