2009-11-04 46 views
2

我是構建Web應用程序的新手,剛剛開始學習和設置Grails。我打算建立一個流程爲4到5頁的應用程序。由於HTTP是無狀態協議,頁面之間的狀態通常是如何維護的。我很好奇這裏公認的標準是什麼,我應該創建會話範圍對象並在頁面之間使用它們,或者不斷傳遞頁面之間的值(如果頁面上有大量項目,不確定它是否有效)。或者,而不是使用4到5頁,我應該只使用一個頁面與多個div和基於用戶點擊顯示/隱藏? 我認爲在Grails中使用域對象在這裏會有所幫助,但是我沒有支持UI的數據庫,只有一些web服務會執行UI操作,所以我不能使用域對象。 一個Grails特定的解決方案會很好,但也想知道如何在Web開發中處理這個問題。如何在Web應用程序中維護狀態 - 因爲HTTP是無狀態的

+1

也許你的意思是* HTTP *而不是* HTML *。 HTTP是通常用於「獲取」HTML的傳輸協議。 HTML只是一種標記語言。 – 2009-11-04 19:02:40

+0

謝謝,現在更正 – Arvind 2009-11-04 19:22:03

回答

7

,不使用數據庫,有幾個選項可以使用:

  1. 使用POST/GET變量從頁面傳遞信息頁面。
  2. 使用會話存儲信息。
  3. 使用cookie存儲信息。

如果您只有一個頁面與另一個頁面「交談」(例如,提交表單),則使用POST/GET通常是最好的。如果你有一堆數據將被多個頁面共享,那麼最好的辦法是將它們放在會話中。如果您需要這些值在用戶離開您的網站並稍後再回來後繼續使用,那麼您可能需要使用Cookie。

+0

是的禮儀我不想用DB來存儲中間的東西。我有第一頁上的50個字段需要在內存中,直到我從第4頁提交。所以我想我應該使用會話存儲。我將檢查Grails如何支持這一點。 – Arvind 2009-11-04 18:01:20

1

您可能想在Grails中查看WebFlow(Spring WebFlow)。我發現它有助於像嚮導或購物車那樣的應用程序,在這些應用程序中,您想要保存一組頁面之間的數據(即:頁面1,頁面2 ...頁面4),然後在最後將數據提交到某處等等