客户机服务器文件更新,服务端数据更新,如何更新客户端缓存
我是服務(wù)端
被客戶端吐槽說我的API接口沒有數(shù)據(jù)版本號(用來表示后臺數(shù)據(jù)是否有更新),導致客戶端緩存不知道什么時候更新,每次都要請求服務(wù)端數(shù)據(jù)
對此有幾點疑慮,特來請教各位大拿
客戶端緩存更新是否真的有必要依賴服務(wù)端的通知?
如果增加版本號這種需求成立,難道需要每次服務(wù)端更新數(shù)據(jù)都要更新版本號?感覺并不是優(yōu)雅的設(shè)計
目前處于項目初期,是否可以考慮根據(jù)具體業(yè)務(wù)數(shù)據(jù)更新頻度,客戶端自己設(shè)計更新策略
如果服務(wù)端數(shù)據(jù)變動通知真的是強需求,我考慮使用Last-Modified 與If-Modified-Since等Http Header的方式,是否可行
有沒有其他的解決方案,還請賜教
回答:
對于這種對更新變化敏感的數(shù)據(jù)部分,數(shù)據(jù)庫設(shè)計的時候可以加上create_time和update_time字段。 記錄內(nèi)容修改的同時更新update_time字段的值。
剩下就讓客戶去自己處理吧,接口無需都帶上API版本號。
回答:
你想想,客戶端有什么途徑可以知道你服務(wù)器的數(shù)據(jù)更新了。
認為一個東西不優(yōu)雅的前提是你能找到更優(yōu)雅的。
這個要看你數(shù)據(jù)同步需求,如果同步的要求高的話就必須要服務(wù)器通知。
回答:
首先這里的緩存數(shù)據(jù)定義是長期不更新,少更新的數(shù)據(jù)。如省市地區(qū),固定配置項,用戶認證信息(基本不更新)。
那么我們目前項目的話是 客戶端每次初始化的時候就調(diào)用一下服務(wù)端接口,傳一個update_time過來,然后服務(wù)端根據(jù)這個update_time去查庫判斷當前數(shù)據(jù)是否更新過,如果沒有更新過,則給客戶端返回空,然后客戶端就拿本地緩存數(shù)據(jù)。
回答:
讓前端定時調(diào)用API傳最后更新的時間,API中根據(jù)數(shù)據(jù)庫判斷最后更新的時間,非最后更新的時間就給前端返回數(shù)據(jù)
總結(jié)
以上是生活随笔為你收集整理的客户机服务器文件更新,服务端数据更新,如何更新客户端缓存的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql和oracle转换_转MySq
- 下一篇: json.hpp参数错误