我的应用程序在本地缓存数据。请求数据时,将立即返回缓存副本,并在后台进行ajax调用以检查来自服务器的任何更新。如果有任何更新,则会将其推送到主叫代码。
我想做的是检查对ajax呼叫的304响应,如果他们已经获得了最新数据,则不会推送给呼叫者。但是,似乎xhr状态始终为200,即使服务器返回304(我可以通过查看chrome开发人员工具的网络选项卡中的原始响应来验证)。
我做了一些谷歌搜索,似乎这是预期的行为。但我也发现有人提到可以通过设置if-modified-since标头来覆盖此行为。不幸的是,我还没有看到一个如何实现这个目标的具体例子(而我天真地尝试将标题设置为new Date()
似乎没有效果。)
通过设置ifModified = true
看起来这在jQuery中是可行的,但我试图用jQuery做这个。
我想我可以在实际数据中包含某种版本标记并手动将其与我的缓存数据进行比较,但是如果可能的话,使用304响应似乎会更好/更清洁。有人能指出我正确的方向吗?