我正在使用 REST API,它以 JSON 响应的形式返回我想要的数据。实际上,我只想处理以前未处理过的新数据,但我正在努力寻找解决此问题的最佳方法。
我的一个想法是对整个 JSON 响应进行哈希处理并将其存储在一个变量中,然后每次我轮询 API 以获取新数据时,我对其进行哈希处理并根据上一次调用的哈希值进行检查,然后如果哈希值是不同的我知道数据是不同的。显然,这似乎是一种非常低效的了解是否有新数据的方法,我想知道如何才能做得更好。
我正在使用请求 npm 模块。
最佳答案
你可以尝试做的是自己实现一套HTTP头。您正在寻找的 header 是:
- 电子标签
- If-Modified-Since
- If-Unmodifed-Since
- 如果修改
- 如果匹配
您会发现上述 header 的基本特征 here .
就您的应用程序而言,ETag
似乎是最好的。来自服务器的每个响应都应该有 ETag
header 。下次请求同一组数据时,ETag
应包含在请求中。服务器决定自上次调用以来数据是否发生变化(基于 ETag
)。如果是,则 200 与新集合一起返回,否则 304
。
关于http - 如何知道 API 响应是否已更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32254202/