簡體   English   中英

如何在AJAX響應中發出無限滾動的結束信號?

[英]How to signal end of infinite scroll in AJAX response?

我有一個網站,我建立了一個無限滾動,當你滾動它加載下一個X結果,但我想知道是否有一個標准的或更好的/首選的信號方式你已經走到盡頭而不再做任何請求。

目前,在數據“結束”之后請求數據時,它只有404秒。 如果AJAX調用收到錯誤/ 404響應,那么它將記住不再打電話。

但對我來說,它感覺有點原始,並想知道通常(如果有的話)解決這個問題的方式是什么。

你是如何處理分頁的? 通常建議在AJAX響應中包含“下一頁”鏈接。 如果這樣做,它可以避免在客戶端上進行數學運算,並提供簡單的通信機制,如果鏈接無效則不要包含鏈接。

如果Ajax返回HTML或文本,則只返回一個空響應,表示沒有更多數據。

如果Ajax返回JSON,那么您只需將“status”屬性添加到對象表示中即可。

無論哪種方式,你應該回應HTTP 200,而不是404。

如果我們假設您的“獲得結果”API調用看起來像這樣:

$.get('/results', { start: n }, function() ...); // for ex, /results?start=0

並返回如下內容:

[{ name: 'Result 1' }, { name: 'Result 2' }, ... ]

其中n是已經加載的結果數,那么返回404錯誤在語義上並沒有意義,這意味着所請求的資源/results )不存在。 這不是真的; /results 確實存在,但請求參數不會導致數據。

返回帶有空數組的200更合適

[]

...或者使用HTTP 204 No Content回復,這意味着請求成功,但沒有任何回復。 這確實節省了幾個字節,因為服務器不需要發送Content-TypeContent-Length頭和響應主體。

(我用的是204.)

無論哪種方式,您的客戶端腳本都知道204或長度為0的數組意味着沒有更多數據,並且可以停止發出請求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM