我正在使用淘汰映射插件为我自动创建我的视图,并且它们运行良好。
但是,我使用Raphael.js根据映射对象中的值生成一个仪表,但我注意到仪表会为每个更新的 observable 重新绘制。鉴于页面上有大量此类仪表,每次我从 AJAX 调用返回新数据时,将它们重新绘制 3 次对性能来说并不是很好。
因此,我已使用copy
映射选项将对象上的所有属性(除了一个属性)更改为普通的 javascript 属性。
现在我遇到的问题是,在所有直接的 javascript 属性都更新之前,一个可观察的属性正在更新,因此仪表的某些部分不同步。具体来说,可观察属性是 DisplayValue,我将其作为文本输出到仪表的中间,而我还有一个普通属性 PercentValue,用于在仪表上实际绘制线条。因此 DisplayValue 在 PercentValue 之前更新,这会导致重新绘制仪表,这意味着仪表上的线始终显示最后一个 PercentValue,而不是当前的。
我查看了油门扩展器,看来我必须添加一个包含我的两个可观察对象的计算属性才能工作,但我不喜欢必须添加一个属性的想法获得此功能。同样,我假设我可以添加一个可观察属性(例如 LastUpdated)并在整个对象更新后手动更新它,但这也让人不满意。
对于combineObservable似乎确实存在一个问题,所以我想目前无法以我想要的方式执行此操作。
那么,有没有更好的方法来完全做到这一点?是否有某种方法可以在可观察对象之前更新正常的 javascript 属性?我猜这些属性是按字母顺序处理的?