我正在一個大網站上工作,並在該網站上有一個搜索模塊。搜索是通過使用大量用戶提交的值完成的,因此在分頁中,我必須將所有這些數據傳遞到下一頁,並將值附加到url使url非常大。我應該使用javascript進行頁面提交嗎?
Sso我該如何解決這個問題?我打算使用基於JavaScript的頁面提交(POST),隱藏字段中的所有值到下一頁,以讀取下一頁中的所有值。
它會導致任何問題?或者我應該使用數據庫來保持搜索標準?
我正在一個大網站上工作,並在該網站上有一個搜索模塊。搜索是通過使用大量用戶提交的值完成的,因此在分頁中,我必須將所有這些數據傳遞到下一頁,並將值附加到url使url非常大。我應該使用javascript進行頁面提交嗎?
Sso我該如何解決這個問題?我打算使用基於JavaScript的頁面提交(POST),隱藏字段中的所有值到下一頁,以讀取下一頁中的所有值。
它會導致任何問題?或者我應該使用數據庫來保持搜索標準?
爲了使用分頁進行可靠的搜索,我們需要做的比平常多一點。
我們需要處理以下情況。
一旦搜索完成,用戶可以選擇做瀏覽器前進和後退。在這裏,如果您在每個頁面上進行表單提交,這將是一個超載。另外,如果用戶按下瀏覽器刷新按鈕,則會不必要地提醒他數據正在提交。
在一個大型數據庫上搜索有很多標準是昂貴的。因此,優化很重要。
所以,你應該不做到以下幾點:
因此,對於你的情況,你可以做到以下幾點:
使用隱藏字段和POST方法應該也可以,除非您能夠在下一頁右側獲取它們。
爲了補充Sarfraz的答案...
這是沒有必要使用JavaScript來進行POST。
<form action="destination_url" method="POST">
...
</form>
我的計劃是在用戶點擊分頁編號(1,2,3,4 ...)時提交頁面,這些元素必須是鏈接,我的計劃是在有人點擊頁面時提交頁面,因爲那些鏈接我們必須調用一個javascript函數來提交頁面, – milan 2010-07-22 08:30:16
我想創建一個服務器端的對象,可能與後端數據庫是由不同的頁面更新。
這是我認爲最清楚和最簡單的解決方案。通過post或者javascript或者cookie來給頁面提供參數也能起作用,但這對我的經驗來說更是一個怪癖。
此外,如果搜索查詢非常複雜以至於需要多個頁面才能創建它,那麼用戶可以將所有數據存儲在服務器上,以便他可以通過在不同的頁面。
當初始搜索被觸發時,我會在服務器上的某種會話存儲中存儲所有搜索標準。
對於分頁,我會從會話存儲檢索標準,然後只顯示適當的結果。此外,我還會在分頁鏈接中添加某種關鍵字(因此這將是唯一隱藏的後期字段),在這種關鍵字下可以找到搜索標準。
即使會話是每個用戶,您可能會在同一個會話中打開多個搜索窗口,但您不想將它們與分頁混淆。
你有一個cookie的4K。夠了嗎? – mplungjan 2010-07-22 08:26:22
如果我將所有用戶用戶提供的值存儲在cookie中,它會好嗎? – milan 2010-07-22 08:28:33