比较两个骨干模型之间的差异?

发布于 2024-12-08 00:47:30 字数 213 浏览 0 评论 0原文

我有一个应用程序可以通过网络套接字更新两个客户端之间的主干模型。

我希望保持同步过程非常通用,因此我的目标是能够压缩模型通过网络发送 JSON 并在其他客户端上膨胀。

我已经让所有这些工作完美,除了现在我将模型充气到位,破坏了旧模型。据我所知,这意味着一切都会改变状态并且一切都会再次呈现。

我应该如何在接收端比较和应用模型的更改属性?

谢谢!!!

I have an app that updates backbone models between two clients over websockets.

I'd like to keep the sync procedure very generalized so I'm aiming to be able to deflate the model send JSON over the wire and inflate on the other client.

I have all this working perfectly except right now I inflate the model in place clobbering the old one. As far as I know this means everything changes state and everything renders itself again.

How should I go about comparing and applying only changed attributes of the model on the receiving end?

Thanks!!!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

听不够的曲调 2024-12-15 00:47:30

我假设您从远程模型中获取属性的哈希值,并调用

localModel.set remoteModelHash

在这种情况下,对于该哈希值中的每个属性,仅针对其值的属性触发 change 事件是不同的(更准确地说,那些未通过 _.isEqual 测试的人)。这意味着您不应该渲染不必要的视图等。

您可以通过

localModel.changedAttributes()

set 调用后进行检查来测试这一点。

I assume you're taking a hash of attributes from the remote model, and calling

localModel.set remoteModelHash

In that case, for each of the attributes in that hash, a change event is triggered only for those whose values are different (more precisely, those who fail a _.isEqual test). Which means that you shouldn't have views rendering unnecessarily, etc.

You can test this by checking

localModel.changedAttributes()

after the set call.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文