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