在上一个版本中,我使用了setProperties并省略了trackingImplementation,我决定手动使用knockout来加快速度,(我有很多实体)。
现在它改为这种语法,即使我注释掉“ko”行,它仍然会创建observable,有没有办法防止这种情况?
core.config.initializeAdapterInstances({
// modelLibrary: "ko",
dataService: "webApi"
});
答案 0 :(得分:2)
我正在将大约5000到10000个实体加载到缓存中,这些是“访客”,它们将在晚上从访客列表中删除,我需要将它们存储在离线状态,因为如果我失去连接,那么应用程序无法执行工作。我也在运行移动设备上运行,当我使用KO时,从服务器带来的每个实体都成为可观察属性的列表,这显然是矫枉过正,并且在iPhone上崩溃了。 相反,我等待用户使用breezejs本地查询从10,000个实体进行搜索,然后对搜索结果中的每个访客实例化具有observables的访客。这允许我使用knockout进行绑定并单独留下其余的实体,它运行良好并且在ios设备上也表现良好。 现在只读一下“扩展实体”
谢谢
答案 1 :(得分:0)
我在评论中看到您尝试了...modelLibrary: backingStore...
。我打算这样说。但后来我担心你的手动KO属性会绕过backingStore属性而轮子会掉下来。我认为如果你添加了读取和编写backingStore属性的KO计算器,它可以工作(没有尝试过)......但是它们必须有不同的,没有冲突的名称,对吗?
让我们回到根本原因。使用ko模型库的速度太慢,你在做什么更快?我无法想象KO属性的定义如何成为性能问题。你怎么测量速度差?什么是速度差异?
另外,您是否尝试在自己的实体类型构造函数中定义KO属性,并使用“Extending entities”中所述的MetadataStore
注册该构造函数?