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