假設我有一個端點返回一個10k結果的數組。我希望他們在包含頁面的表格中顯示。考慮用戶體驗的最佳方式是什麼?在一次來自API的分頁結果 - 分頁和UX
- 取一切,分頁
- 獲取該網頁的用戶正在訪問的結果,顯示它們並重新獲取一切
我知道,第二個選項是比較慢的,但它可以防止取多次。 你會選擇哪一個?
PS我知道,在涉及SO法規時,這可能不是一個好問題,但我在現實世界的應用程序中幾乎沒有經驗,並且想知道它是如何完成的。
假設我有一個端點返回一個10k結果的數組。我希望他們在包含頁面的表格中顯示。考慮用戶體驗的最佳方式是什麼?在一次來自API的分頁結果 - 分頁和UX
我知道,第二個選項是比較慢的,但它可以防止取多次。 你會選擇哪一個?
PS我知道,在涉及SO法規時,這可能不是一個好問題,但我在現實世界的應用程序中幾乎沒有經驗,並且想知道它是如何完成的。
事實上,你是正確的,它不是最好的問題,當涉及到SO註冊,但我覺得它是一個有效的。
您應該只加載當時需要的項目,每個請求都會去獲取結果。每頁25個的例子是:最初你可能會得到0-25的結果,然後當用戶點擊第2頁時,你將獲取結果25-50等等......
你不應該一次加載10k結果。您應該只加載一些限制項目(可能是10,20,50 ...等等)。 如果你檢查你的API,可能有一個limit
URL參數和一些叫start
?如果是的話,你可以定義你想要的結果以及從哪裏開始。因此,您可以將「分頁」發送到API,並且只需要從第100位獲得50個結果。
是的,在這個端點上有'offset'和'limit'過濾器。每次用戶點擊頁面時,我都會堅持提取。 – Ancinek
10k結果並不代表收集信息所需的實際工作量,也不代表每個結果中的數據量。 現實世界中的任何人都不會將它全部下載到客戶端,如果它的工作負載很重要收集頁面的信息 - 嘗試儘可能使用緩存 –
@DimaVinogradov 10k結果。每一個都是一個簡單的對象,具有'id','title','description'。整體響應大小約爲900kb。 – Ancinek
那麼,一個人會前後翻頁1-2頁,如果這樣不能產生足夠的信息 - 過濾器應該被應用 -底線,分頁並且每次只檢索一頁 –