【发布时间】:2018-03-02 08:52:50
【问题描述】:
目前我有一个 Angular2 应用程序,其中包含一个包含嵌套对象的对象。用户按照向导更新对象的任何部分,然后单击保存。目前,我只是将整个对象发送到服务器端进行更新。要进行更新,我从数据库中获取数据库副本,并将客户端副本具有的所有字段设置到数据库副本上,无论它们是否已更改,然后保存。这意味着我还必须遍历所有嵌套对象并将它们从数据库中拉出并设置它们的所有属性等等。一切都会更新,即使它没有改变。
这是我通常这样做的方式,但对于这个应用程序,我需要保留已更改对象的审核日志。如果每次更新主对象时,所有其他子对象都记录它的更新,这将是很困难的。
是否有一种优雅的方法来确保服务器端只知道更新已更改的内容(因此只触发该对象的审核日志并且不会浪费时间在数据库上进行更新)。
我正在考虑创建一个对象,该对象在用户更改向导中的内容时在客户端存储脏对象列表,并将其与对象一起发送到服务器,以便我知道哪些对象需要更新。
或者我应该像现在一样将整个对象发送到服务器,然后首先将其与原始数据库对象进行比较(通过遍历所有对象并比较它们)以确定发生了什么变化?
看起来工作量很大。我想知道是否有这样做的标准方法/最佳实践。
编辑 2018-04-24:我刚刚发现了 BreezeJS。这是我想要用来实现我的目标的东西吗?它跟踪实体及其修改状态,并在需要时将它们作为更改集进行相应更新。还有其他类似的东西我应该研究吗?
【问题讨论】:
-
这都是 JSON 可表示的数据吗?
-
是的。都是 JSON 数据。
-
对我发布的解决方案有任何反馈吗?
标签: node.js design-patterns angular-cli