angularjs - 有效地使用 Angular 的 304 响应状态代码

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

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/

相关文章:

apache - 通过 .htaccess 强制 SSL 重定向

python - Django 中的cache.fetch?

javascript - AngularJs | ng-click 不触发

javascript - Angular JS 脚本不更新 View

php - 服务器为肯定存在于正确目录中的资源提供 410 错误

java - 使用查询时在 Hibernate 中查找部分缓存数据

android - 使用 Android Universa Image Loader Library 设置图像缓存的生命周期

javascript - 指令中范围的数组属性在引用时被清空

javascript - Angular get 请求不显示任何内容

单个请求请求的资源太大或太多时的 HTTP 状态代码