简介:缓存失效和同步角/后端太
我已经上了后端复杂和持久的查询,反馈的前端角应用。
目前,角度应用程序使用后端的缓存数据,而不是直接从复杂查询中读取,这需要几分钟的时间。缓存每天早上和每晚都会变暖。
随着用户对ui进行更改并保存数据,然后将其传递到服务器端并保存到数据库。那时用户界面是最新的,直到用户刷新页面。同时数据库是最新的,但缓存已过时。
因此,当用户刷新页面时,陈旧的缓存值将显示在页面上。
更多信息:
现在我去想办法刷新缓存,并且任何建议从有经验的人将是最欢迎的。
我的想法是通过缓存作业(一次一个)刷新缓存,只要用户保存某些内容,就立即排队。作业将有相关的信息发生变化,整个缓存不必重新计算,而只是改变了一点。
问题的一部分:
我可以使用哪些技术来保持用户了解最新的数据,即使用户刷新页面?我应该以indexedDB还是localstorage的形式在客户端保存'deltas',同时将数据发送到服务器。所以当页面刷新时,用户从本地存储或索引数据库中读取数据。
我还在想这个低谷,显然我没有太多的经验,对目前为止我所采取的方向有什么意见?
基本上我可以改变任何东西,包括后端/前端/缓存它仍然在POC阶段,我只是试图尽可能知道什么为别人工作。
更新
多一点背景。我正在处理像页面这样的索引,因此有多个可以内联编辑的记录。
另外我正在做一些后端平面数据库记录的转换,然后将它们转储到像结构一样的映射中,并以json的形式将它传递到前端。
如果用户进行了一些更改并保存,为什么不能在刷新时请求这些数据库值? –
我认为最简单的方法是确保知道缓存创建的时间。在进行更改时,请将当前页面的状态以及缓存的时间保存在localStorage中。当你加载页面时,你会得到缓存的数据,请检查它是否比localStorage版本更新。如果是,请使用缓存,如果没有,请从localStorage重新载入数据,因为缓存数据已经添加了您的更改。 – dave
您所描述的内容听起来更像是数据转换作业,而不是缓存。阐述你在服务器端做什么和使用什么是有用的。 – zeroflagL