Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 流星收集的系列化和观察变化?_Javascript_Mongodb_Meteor_Fabricjs - Fatal编程技术网

Javascript 流星收集的系列化和观察变化?

Javascript 流星收集的系列化和观察变化?,javascript,mongodb,meteor,fabricjs,Javascript,Mongodb,Meteor,Fabricjs,我有一个应用程序,我将把它简化为:p-在客户端有一个对象列表,每个对象都有一个类似drawable的属性,它是画布的fabricjs对象实例。关键是,我想让它完全反应和同步-每次有人在画布上移动元素或从列表中删除一个项目时,它都必须在每个其他客户机上更新 这里是一个问题-如何为这样的任务创建和优化数据结构,目前我正在使用类似的方法: ListObject { name: 'name', otherAttributes: 'blahblah', drawable: 'fab

我有一个应用程序,我将把它简化为:p-在客户端有一个对象列表,每个对象都有一个类似drawable的属性,它是画布的fabricjs对象实例。关键是,我想让它完全反应和同步-每次有人在画布上移动元素或从列表中删除一个项目时,它都必须在每个其他客户机上更新

这里是一个问题-如何为这样的任务创建和优化数据结构,目前我正在使用类似的方法:

ListObject {
    name: 'name',
    otherAttributes: 'blahblah',
    drawable: 'fabricjsObjectInstance'
}
我不想让它以序列化/反序列化的方式

我的意思还有一些例子:

当画布上的对象被移动时,只有它的左属性和顶部属性被更改——所以我不想发送和获取整个画布序列化 是否可以在代码中以某种方式使用minimongo集合绑定数组对象? 我可以去掉js代码中的所有“模型”,只使用Meteor集合和一些行为方法吗?
我更确信我做错了,或者我没有得到流星反应。我的目的不是要得到每个问题的答案,因为这可能是不可能的,而是要得到一些想法或建议,如何解决这个问题。

不幸的是,你的整个方法似乎都是错误的。在页面上移动元素可以在几秒钟内生成数百或数千个事件。即使进行了大量的节流,它仍然会给数据库带来巨大的负载。为了实现这一点,您可以简单地将位置存储在DB posX和posY中,例如,使用方法更新位置、删除或添加元素,还可以存储其他数据以在客户端重建对象。如果你想在没有我推荐的Mongo的情况下使用它,你可以从开始。好吧,让fabric完全活起来是错误的-我可能会做一些超时,目前这也不是问题。让我们跳过观察对象移动和变换的部分。目前最大的问题是我看待流星反应的方式。我有一个名为ex.Obj的对象,它有属性、构造函数等等。然后我必须序列化它,插入到集合->在其他客户机上获取更改->检测序列化对象的类型,将数据反序列化到新创建的对象。我知道,这是必须真正实现的对象的一个简短版本,我想知道我是否可以跳过这一部分,让它只是观察一个属性。