Knockout如何保持状态?

时间:2016-08-26 11:17:17

标签: knockout.js single-page-application state-management

我是Knockout JS的新手并致力于小型单页面应用程序。我找到了一些很好的例子,并观察到即使页面被保存并重新加载数据,其他的copntrols也不会受到影响。他们的数据不会丢失。

我还填写了第1页的一些细节并移到了Page2,在那里我做了一些操作甚至保存了数据,然后又回到了Page1,但我仍然找到了我在转到第2页之前输入的数据。

我想知道它是如何保持状态的?我找不到任何文章,或类似的东西。任何人都可以提示它是如何工作的,我们如何维持状态?

1 个答案:

答案 0 :(得分:0)

一般情况下,JavaScript应用程序通常会在用户导航或关闭选项卡/窗口时松开其状态。 KnockoutJS本身并没有什么特别的,可以防止发生状态损失。

如果您有真正的SPA,那么用户永远不会从SPA“导航”。它只是在 SPA中导航,这在用户体验上可能类似,但与技术观点完全不同。

即使使用SPA,用户也可以离开SPA并稍后返回。与非SPA应用程序类似,代码将需要一些机制来保持页面或SPA的负载状态。

同样,KO没有什么特别之处。您的应用需要代码(或插件)来处理此问题。查看this generic advice on preserving state和/或自己动手构建代码。如果您的代码存在特定问题,您可以随时回到具有特定问题的SO。