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