我想創建一個無限滾動頁面 - 有點類似於tumblr檔案頁面,如this。我理解我必須用服務器調用加載內容的概念,但我不知道如何在Tumblr中實現這種「動畫加載」設計。通過AJAX動畫無限滾動:返回JSON或HTML?
我不想知道確切的代碼,只有解決方案的整體概念。那麼做這樣的事情最好的做法是什麼?
我應該從服務器獲得什麼:一堆JSON數據或完整的HTML頁面的?
我試着解碼上面的Tumblr頁面,我在網絡流量頁面看到,在每個滾動事件中都有一個POST請求,它返回一個完整的 HTML頁面,它具有自己的JavaScript和CSS內容!
我猜動畫邏輯是在這個JavaScript內容裏面的。
,但我對這個方法2個問題:
- 當我從服務器(包含新的一頁,也),得到完整的HTML網頁我怎麼能扔當前顯示的HTML文檔路程,我設定了新的?
- 從性能的角度來看,每次返回完整的HTML文檔都不算太糟糕嗎?因爲完整的文檔也會包含檔案的前面「頁面」的結果。或者我認爲錯了?
從服務器返回一個JSON結果不是更好嗎? (它必須在客戶端解析,但它會更多的網絡流量友好,我猜)
如果最好是返回一個JSON,爲什麼Tumblr的工作方式是相反的?
爲什麼開銷不變?如果我向下滾動了1000頁(例如),那麼下次我將獲得一個包含1001頁的完整HTML頁面!而不是簡單的1頁(JSON)響應。我認爲開銷是線性的...... – Zsolt
@Zsolt號一個完整的HTML頁面將只包含一個頁面(1001st)。服務器不會再發送前1000個頁面。 javascript不會用收到的內容替換當前頁面。它將支付它的一個特定部分。 –
「全部」意味着「包括頁眉和頁腳」,或者「如果網站使用傳統分頁,用戶會看到的所有內容」。 –