「今日頭條」的列表是怎麼做到每次下拉都有6條刷新的?

「今日頭條」的新聞列表,每次下拉的時候都會有6條新聞刷新出來,這個是什麼機制呢?

這些新聞是存在一個熱帖庫里的么?有時間上的限制么?比如我曾經錯過的新聞是否會重新顯示?


這裡應該要提到一個timeline的問題

後台中所有的新聞都是以時間線進行累加進行的。假設每次請求獲取8條數據。

如上圖:

第一次刷新的時間點,進行發送請求至伺服器,獲得數據0

第二次刷新伺服器給出,發送當前列表中的數據6條命

第三次刷新,間隔較長請求並發送8條數據。

第四次刷新,發送請求並獲得8條命數據。

這裡是最簡單的獲得數據的邏輯!

那麼這裡的模型中會出現如上幾個問題!

1,當我發送的請求不足的時候如何處理。

2,當我發送後獲得的數據輸小於我設定的數據數的問題

3,當我發送的請求獲得新數據和歷史數據重複的問題。

--------------------------

Adnriod 和iOS 內存會記錄相關信息然後進行去重處理。達到如上的目的....

設備:有數據沒

伺服器:有

設備:來8條

伺服器:咱這裡只有6個。

設備:行

5秒後

設備:「它」要我問你有數據沒

伺服器:沒有啊

設備:哦

半小時後

設備:來一發!

伺服器:剛剛好有6個

設備:行

40分鐘後

設備:「它」還要

伺服器:給你最新的

設備:行。

設備(自言自語):次奧,裡面居然有5個給過的。管它的覆蓋了。


這是今日頭條應用智能推薦分發系統。今日頭條會根據用戶的閱讀習慣和閱讀興趣,為用戶智能推薦相關的內容。


推薦閱讀:

在高速公路上30分鐘內看到一輛車開過的概率是0.95,那麼在10分鐘內看到一輛車開過的概率是多少?
到底什麼是 Use Case?
axure默認字體怎麼設置啊?
如果你要招產品經理會招像尹廣磊這類的嗎?
如何定義需求的優先順序?

TAG:互聯網 | 產品經理 | 互聯網產品 | 移動新聞客戶端 | 今日頭條應用 |