2012-12-17 43 views
-1

我們正在製作一個電話移動企業應用程序(大量的信息捕獲和顯示)與近15個模塊和使用jQuery mobile.We基本上希望導航從說Page1到page2到page3與返回和下一個功能,然後在第3頁提交。現在,當我從page1導航到page2到page3然後返回時,我希望我的所有數據都能在控件中保留,如何實現這一點?我不希望把所有div(頁面)放在一個頁面中,純粹是因爲它變得非常擁擠,儘管我們使用的是單頁面實現技術。頁面導航與JavaScript中的數據保留

當我說要保留的數據時,我的意思是,無論填入page1的數據是否保留,一旦我回到頁面後,說導航page2和page3,即填充Page1下一個 - >填充page2 next->填充第3頁返回 - >第2頁(保留數據)返回 - >第1頁(保留數據)

+0

對你有好處...你有一個真正的問題嗎? – Veger

+0

AJAX,您不會離開頁面,而是向服務器發送JavaScript處理請求以獲取新數據/更新數據/刪除數據或查找數據。 – HMR

+0

請說清楚。「我希望我的所有數據都能在控件中保留。」手段?確切的問題是什麼? – Rajesh

回答

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 Documents

您可以使用JQM作爲一個UI框架。骨幹作爲一個MV *框架。如果你還不知道如何使用Backbone,你應該學習它。這是值得你的時間:)

+0

那麼,我需要去掉jQuery嗎?我的意思是它只是一個像requireJS這樣的加載框架? – Anu

+0

你的意思是jQuery Mobile?不,您可以將它用於您的UI小部件。不,與RequireJS不一樣。 –

+0

ok,所以對於UI - jQuery Mobile,用於Navigation - Backbone。所以我會通過骨幹然後讓你知道。將此標記爲至今爲止的答案。 – Anu