I know当服务器返回304 NOT MODIFIED时,浏览器会透明地处理它,并且任何客户端代码都无法直接使用它。我的问题是该列表非常庞大(未经压缩的4 MB)并将其转换为JSON需要很长时间(在我的桌面上为70毫秒,在重要的Android上要长得多)。
我不想在这里使用angularjs缓存,因为必须完成HTTP请求。我不想使用部分列表。
我想使用E-Tag
标头并入侵defaultHttpResponseTransform
会有所帮助,但我想知道是否有一种避免这种开销的标准方法。
答案 0 :(得分:1)
只需比较代码标头中的$cache
,即可将E-tag
与浏览器缓存结合使用。由于浏览器始终模拟200状态代码,因此无法捕获304状态。有一个库可以处理这类问题https://www.npmjs.com/package/angular-http-etag。但解析json的问题是你无法避免的,因为localStorage也将json序列化为字符串,因此你必须以醚方式解析它。我的建议是将json分成更小的块并根据需要请求它