【问题标题】:Knockout - save state with amplify淘汰赛 - 用放大保存状态
【发布时间】:2012-10-08 21:25:01
【问题描述】:

我想知道 Amplify 是否可以轻松处理包含大量嵌套剔除可观察对象的大数据模型。 目标是在页面刷新后保存和恢复数据(视图)模型的当前状态。

从几个例子看来,每个 observable 都需要扩展以使用本地存储。 可能这可以在全球范围内应用,但我不确定嵌套的可观察对象将如何表现。 (即,viewModel 有许多可观察变量,每个变量都包含具有更多可观察变量等的 json 对象)。 是否可以保存 viewModel 的状态,以便在页面刷新后以正确的方式恢复所有嵌套的 observables? (另一个问题可能是性能,因为它必须在移动设备上使用)

有人遇到过这类问题吗?

【问题讨论】:

标签: object knockout.js save state observable


【解决方案1】:

这是可以做到的,我正在做。虽然我已将其拆分为单独的模块来处理我的 ajax 调用和缓存。

需要注意的是,如果您使用可观察对象存储整个淘汰视图模型,则在将其取回时,将不会恢复数据。这是因为你的 observables 是函数而不是数据本身。

为此,您必须将您的可观察视图模型转换为适当的 Javascript 对象(如果使用映射插件,则为 ko.toJS 或 ko.mapping.toJS)然后存储它。当您检索数据时,您必须通过您的视图模型将其发送以重新创建可观察对象。

这并不像您想象的那么昂贵。使用映射插件很容易做到这一点。但是,如果您的阵列中有大量数据,那么您应该重新考虑获取如此多的数据,尤其是对于移动设备。

【讨论】:

    猜你喜欢
    • 2013-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-14
    • 2012-08-10
    • 2013-01-09
    • 2017-09-22
    相关资源
    最近更新 更多