2012-04-11 139 views
0

我通過幾個不同提供商的WS請求獲得了一些結果,然後我收集並排序結果,然後將結果顯示給用戶。搜索結果分頁,最佳實踐

結果的數量介於0和60-70之間,平均值爲10-20。 我的問題是:如何處理分頁? 我試圖找出哪些是我的情況的最佳解決方案,因爲我已經找到了幾種方法來做到這一點...我相信我錯過了其他好的(可能更好的)解決方案...解決方案我認爲直到現在:

1)使每個頁面(15個結果)通過WebServices進行新的聚合搜索。這很愚蠢,但由於結果的平均數量是10-20,分頁不會經常使用。

2)保存在數據庫中的所有結果爲臨時緩存,然後表示15周的結果在時間

3)載入所有的結果在一個單一的頁,但僅示出15使用Jquery的分頁插件一個頁面(客戶端?)

回答

1

這取決於結果有多大,但如果您有最大60-70結果,我寧願沒有分頁,尤其是如果它不經常。更好的用戶體驗。

+0

我只有60-70個結果,但每個結果都可以從幾行到半個屏幕,因此結果頁面可能會非常長,並且有超過10-15個結果 – alessiop86 2012-04-12 13:59:45

1

你確定有一天Web服務不會開始返回更多的結果嗎?如果有一天有一個錯誤,其中一個錯誤會無意中將50000份同樣的結果返還給您?在每個解決方案:

  1. 一個大於結果的預期數量會導致你與相同的結果一再要求垃圾郵件的網絡服務,通過他們的用戶頁面。

  2. 大於預期的結果數量最終會暫時佔用數據庫中的空間。另外,在網絡應用程序中,您將如何知道何時清除緩存?

  3. 大於預期的結果數量最終會成爲用戶瀏覽器中的一個巨大頁面,可能無法正確呈現,直到整個下載爲止。

我真的很喜歡選項3.緩存在其中數據被通緝的地方完成的,沒有多餘的命中Web服務和尋呼將成爲用戶的超高速。

如果您確定不會返回超過60-70個結果,並且/或者您的用戶永遠不會需要大量結果,您可以將選項3與數量上限結果你會回來。

即使在Web服務返回錯誤/意外結果的最壞情況下,您也可以將其修剪到第一個,然後將它們發送到瀏覽器,然後用JavaScript對它們進行分頁。