我是服务端
被客户端吐槽说我的API接口没有数据版本号(用来表示后台数据是否有更新),导致客户端缓存不知道什么时候更新,每次都要请求服务端数据
对此有几点疑虑,特来请教各位大拿
客户端缓存更新是否真的有必要依赖服务端的通知?
如果增加版本号这种需求成立,难道需要每次服务端更新数据都要更新版本号?感觉并不是优雅的设计
目前处于项目初期,是否可以考虑根据具体业务数据更新频度,客户端自己设计更新策略
如果服务端数据变动通知真的是强需求,我考虑使用Last-Modified 与If-Modified-Since等Http Header的方式,是否可行
有没有其他的解决方案,还请赐教
Untuk bahagian data jenis ini yang sensitif terhadap perubahan kemas kini, medan create_time dan update_time boleh ditambah pada reka bentuk pangkalan data. Apabila kandungan diubah suai, nilai medan update_time dikemas kini pada masa yang sama.
Biarkan pelanggan mengendalikan selebihnya sendiri. Antara muka tidak perlu membawa nombor versi API.
Fikirkanlah, adakah terdapat cara untuk pelanggan mengetahui bahawa data pelayan anda telah dikemas kini.
Prasyarat untuk berfikir bahawa sesuatu itu tidak elegan ialah anda boleh menemui sesuatu yang lebih elegan.
Ini bergantung pada keperluan penyegerakan data anda Jika keperluan penyegerakan tinggi, pelayan mesti memberitahu anda.
Pertama sekali, definisi data cache di sini adalah data yang tidak dikemas kini untuk masa yang lama dan jarang dikemas kini. Seperti wilayah, bandar dan wilayah, item konfigurasi tetap, maklumat pengesahan pengguna (pada dasarnya tidak dikemas kini).
Kemudian untuk projek semasa kami, pelanggan memanggil antara muka pelayan setiap kali ia dimulakan, melepasi masa_kemas kini, dan kemudian pelayan menyemak pangkalan data berdasarkan masa_kemas kini untuk menentukan sama ada data semasa telah dikemas kini telah dikemas kini, kemudian Kembalikan null kepada klien, dan kemudian klien mendapat data cache setempat.
Biarkan bahagian hadapan memanggil API dengan kerap untuk menghantar masa dikemas kini terakhir API menentukan masa dikemas kini terakhir berdasarkan pangkalan data dan mengembalikan data ke bahagian hadapan jika ia bukan masa dikemas kini terakhir
.