2011-10-26 51 views
0

我有一個頁面是從一堆正在呈現的grails模板生成的,使用javascript小部件和東西來指定我們正在開發的搜索引擎的參數。問題是,如果有人點擊搜索結果中返回的人並將其帶到另一個頁面,然後他們點擊瀏覽器後退按鈕,則搜索參數和動態創建的小部件以及先前的搜索結果全部消失。在grails中保存頁面的視圖

我真的不想要以編程方式重新建立基於搜索參數(我可以保存爲會話變量)的頁面,然後我將不得不再次運行搜索查詢以獲得結果背部。有沒有一種方法可以像創建時一樣保存頁面?

謝謝

回答

0

彈出一個JavaScript窗口,其中包含關於該人的信息而不是將他們帶到另一個頁面。在最壞的情況下,將人員鏈接的目標設置爲_new,並強制打開新的瀏覽器窗口/選項卡。

0

在某些地方必須保存搜索參數。無論是在服務器端還是客戶端。在服務器端,您只有選項sessionflash範圍。

在客戶端,您可以將這些值存儲在cookie中。這需要一些javascript。

然而理論上瀏覽器將保持手動更改形式字段值的框。他通過其名稱/編號來識別表單字段。除非您通過AJAX加載頁面的某些部分,否則不應該有任何需要編程的事情。也許你可以重新檢查,輸入字段有靜態的名稱/ ID對,或者你有一些meta/cache/html設置,這些設置禁止這種機制(仔細檢查,你的表單沒有autocomplete="off"設置,這將阻止瀏覽器重新填寫你的表單字段

Grails本身並不提供像你需要開箱即用的東西(我不知道其他框架是否有 - 也許除了Seam,它有對話範圍的概念;但是如果用戶使用瀏覽器後退按鈕,即使這個功能也不起作用),最簡單的方法是讓你的搜索頁面具有某種緩存功能(對於瀏覽器,通過設置HTTP頭或元標籤) ,以便瀏覽器不會再次嘗試從服務器重新加載頁面,如果用戶按下瀏覽器後退按鈕,請再次檢查autocomplete="off"設置。