鍍金池/ 問(wèn)答/Java  PHP  HTML/ app接口開(kāi)發(fā),列表加載的問(wèn)題?

app接口開(kāi)發(fā),列表加載的問(wèn)題?

一、需求:我現(xiàn)在要給移動(dòng)端做一個(gè)文章列表的接口---用于請(qǐng)求最新的數(shù)據(jù)列表和數(shù)據(jù)列表的翻頁(yè)(例如默認(rèn)是第一頁(yè),上滑后返回第二頁(yè)的信息,如此類推)

二、問(wèn)題、困惑描述

1、文章列表翻頁(yè)的功能,除了像平常pc網(wǎng)頁(yè)一樣,移動(dòng)端通過(guò)接口傳參數(shù)(skip=1,limit=10;skip=2,limit=10),服務(wù)器端接收這兩個(gè)參數(shù),然后調(diào)用mysql查詢,除此之外,還有什么其他的實(shí)現(xiàn)方案嗎?

2、關(guān)于請(qǐng)求最新的列表數(shù)據(jù)的問(wèn)題。當(dāng)移動(dòng)端默認(rèn)刷新(下滑時(shí)),返回最新的數(shù)據(jù)給移動(dòng)端。但用戶重復(fù)刷新的時(shí)候,仍然返回最新的數(shù)據(jù)給移動(dòng)端,導(dǎo)致列表中追加了重復(fù)數(shù)據(jù)列表。像這種情況,是移動(dòng)端處理?還是接口的后臺(tái)要做特殊的處理??請(qǐng)大佬們指點(diǎn)一下

3、最后一個(gè)問(wèn)題:有啥app開(kāi)發(fā)的資料推薦一下,網(wǎng)上的資料有點(diǎn)亂,本人剛接觸app接口開(kāi)發(fā),想系統(tǒng)學(xué)習(xí)一遍,謝謝~

回答
編輯回答
雨萌萌
  1. 根據(jù)不同項(xiàng)目需要,我開(kāi)發(fā)api的時(shí)候用過(guò)這種方法:

比如我的數(shù)據(jù)接口是: http://api.example.com/foo, 在前端不傳送任何參數(shù)的情況下,我會(huì)返回:

// 系統(tǒng)默認(rèn)返回20條數(shù)據(jù)
// since是從后臺(tái)查詢的一刻返回給前端的時(shí)間戳,這樣即使你的數(shù)據(jù)是動(dòng)態(tài)添加的,無(wú)論上拉(next)還是下滑(previous)我都可以雙向查詢新舊2中數(shù)據(jù),這樣可以省去前端的一些設(shè)置。當(dāng)然我也會(huì)開(kāi)通條件查詢(skip=1,limit=10;skip=2),實(shí)踐中發(fā)現(xiàn)這種方法非常靈活,延展性很不錯(cuò)。

{
    "data" : [
        {  dataset 1   },
        {  dataset 2   },
        ...
        {  dataset 20 }
    ],
    "paging":  {
        "previous":  "http://api.example.com/foo?since=TIMESTAMP1" 
        "next":  "http://api.example.com/foo?since=TIMESTAMP2"
    }

}
  1. 數(shù)據(jù)的清潔最好是后端掌握。這樣不但能減少迭代的壓力,也能更好的提升客戶體驗(yàn)。
  2. 這個(gè)搜一搜有很多,我就不班門(mén)弄斧了。
2017年5月23日 05:39
編輯回答
孤星

1: 我用的這種,其他的不知道
2: 獲取最新數(shù)據(jù)的時(shí)候,把當(dāng)前最新的 ID 或者 時(shí)間 帶上,后端查詢的時(shí)候,根據(jù)這個(gè)最新為前提查詢

2017年9月29日 17:18