在javascript中保存数据的页面导航

时间:2012-12-17 10:36:47

标签: javascript html5 cordova

我们正在制作一个带有近15个模块并使用jQuery mobile的phonegap移动企业应用程序(大量信息捕获和显示)。我们基本上希望从具有后退和下一个功能的说明Page1到page2导航到page3然后提交在第3页。现在,当我从page1导航到page2再到page3然后返回时,我希望我的所有数据都在控件中维护,如何实现这一目标?我并不期待将所有div(页面)放在一个页面中,因为它变得非常拥挤,尽管我们使用单页面实现技术。

当我说要维护的数据时,我的意思是,无论在第1页中填写的数据是什么,只要在导航第2页和第3页之后回到页面,即填写Page1 next - >填写page2 next->填写第3页 - >第2页(保留数据)返回>第1页(保留数据)

1 个答案:

答案 0 :(得分:0)

如果您的意思是保留页面的状态,并且不想将其保留在DOM中。我建议你Backbone。该框架允许您将元素存储在单独的View对象中。你可以从DOM中自由地销毁它,然后把它扔进去 - 用它的所有“数据”:) - 随时随地。

jQuery Mobile和Backbone确实发生了冲突。它们在导航机制上重叠,JQM是基于标记的,Backbone是以编程方式。但你可以轻松解决这个问题。我更喜欢使用Backbone来完成这种工作。以下是禁用JQM导航的方法:

$(document).bind("mobileinit", function() {
  $.mobile.ajaxEnabled = false;
  $.mobile.linkBindingEnabled = false;
  $.mobile.hashListeningEnabled = false;
  $.mobile.pushStateEnabled = false;
});

$('div[data-role="page"]').live('pagehide', function(event, ui) {
  return $(event.currentTarget).remove();
});

我从Christophe Coenraets偷了这个:P

其余的,如何使用Backbone进行页面导航......,您应该阅读Backbone Documents

您可以将JQM用作UI框架。 Backbone作为MV *框架。如果你还不知道如何使用Backbone,你应该学习它。值得你的时间:))