【问题标题】:Google Drive Realtime API, how should I model SVG in the collaborative model [closed]Google Drive Realtime API,我应该如何在协作模型中建模 SVG [关闭]
【发布时间】:2013-07-18 08:10:47
【问题描述】:

在 Google 的 Realtime API 中建模 SVG DOM 树的好方法或推荐方法是什么?具体来说,对 SVG DOM 树进行字符串化并选择协作字符串模型还是有更好的方法?谢谢。

【问题讨论】:

  • 请不要关闭这个,这是一个很好的问题。
  • 这是个好问题。虽然它有点宽泛,但它也是我们面临的一个非常具体的问题。没有真正的方法来实现特定的东西,因为它会起作用。问题实际上是 RT 团队在这种情况下的意图。 @AliAfshar 你可以投票重新开放。

标签: svg google-drive-api google-drive-realtime-api


【解决方案1】:

这取决于你想用它做什么。如果你想做的只是显示一些东西,而不是可编辑的,那么我只会将它存储为一个 blob。例如,可能只是一个静态字符串。

如果你希望能够编辑它,协作字符串是有问题的,因为它很难保证合并不同协作者的操作的结果会产生格式良好的 XML。

相反,您可以使用custom objects 对树中的各个节点进行建模。您可以使用节点具有任意属性的通用类 dom 模型或使用不同元素类型的特定类来执行此操作。我认为最后一种方法是处理它的最强大的方法,也是最好的工作方式,但也是最多的设置工作。

【讨论】:

  • 如果编辑是通过可视化 UI 进行的,这意味着没有用户直接编辑 SVG 字符串(如 Draw.io),那么协作字符串会是最简单直接的方式吗?我看过您的 youtube 演示文稿,其中提到 API 将在转换之前执行差异,或者类似的东西,以节省带宽,如果是这样,那么我想没关系。另外,在搜索了几天之后,我是否可以说您只能将协作字符串绑定到文本框而不能将其他任何内容直接绑定到任何 DOM 节点?谢谢。
  • 即使用户没有直接编辑它,仍然很难保证对 SVG 字符串的更改基于文本的合并将产生格式良好的 XML。我认为人们已经这样做了,它可能会在 90% 的情况下工作,但它可能会导致很多奇怪的错误。
  • 我们不提供任何实用程序来绑定到文本框以外的 dom 元素。您仍然可以在其他上下文中使用协作字符串,就像其他协作对象一样,您只需自己更新字符串即可。
  • 感谢一百万,现在更好地理解这些事情。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多