鍍金池/ 問答/Java  PHP  Linux  網(wǎng)絡(luò)安全/ 透過curl json給我一千筆數(shù)據(jù),我前端要怎麼做分頁?

透過curl json給我一千筆數(shù)據(jù),我前端要怎麼做分頁?

假設(shè)我透過curl, 對方透過json來我這直接給我一千筆數(shù)據(jù)
但這樣一次出現(xiàn)一千筆似乎不太對?如何透過php方式實(shí)現(xiàn)一頁20筆?有範(fàn)本可參考?謝謝!

一點(diǎn)頭緒也沒有

function httpRequest ($api, $data_string)
{
  $ch = curl_init($api);
  curl_setopt($ch, CURLOPT_POST, 1);
  curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
  curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
  curl_setopt($ch, CURLOPT_TIMEOUT, 5);
  curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
  $result = curl_exec($ch);

  curl_close($ch);

  return json_decode($result);
}


$x = array(
      "session" => $_SESSION['session']
    );
    $x_string = json_encode($x);
    $x = httpRequest($api, $x_string);

我是這樣取對方的數(shù)據(jù)的,只是要怎麼....做分頁?

回答
編輯回答
負(fù)我心

(°Д°)1000條還不分頁嗎?
理論上分頁是要由后端來完成的,一個(gè)基本思路是:
前端需要傳給后端 當(dāng)前頁數(shù),每頁數(shù)據(jù)量;
后端返回給前端 當(dāng)前頁數(shù)據(jù),總數(shù)據(jù)條數(shù)。
前端要根據(jù)總數(shù)據(jù)量和每頁條數(shù)做出相應(yīng)的頁碼鏈接~

2018年8月26日 10:08
編輯回答
吢涼

取到的數(shù)據(jù)是相同的話 那就 后臺(tái)定時(shí) 獲取 入庫 緩存 然后 你這邊查詢分頁 給前端

2018年3月9日 17:23
編輯回答
兮顏

就像樓上說的這么多數(shù)據(jù)分頁應(yīng)該由后端處理了
如果你說的前端是js那可以類似這樣 再for-of取了

function *paginate(data, offset, limit) {
   for(var i = offset; i<=offset + limit; i++) {
     yield data[i];
   }
}
2018年3月13日 06:14
編輯回答
忘了我

此問題接口設(shè)計(jì)的時(shí)候就要考慮周到,分頁應(yīng)該交給后端,后端不支持的話前端無法一次只獲取某一頁的數(shù)據(jù)。后端可以加個(gè)分頁支持,前端通過透過query string指定頁碼。

2018年4月2日 12:46
編輯回答
雨蝶

理論上分頁這種事情是接口處理的,一次一千條數(shù)據(jù)不太合理

最簡單的方法你在請求接口時(shí)多帶兩個(gè)參數(shù)offset,count
offset為當(dāng)前頁碼的數(shù)值,count為每頁需要展示的數(shù)據(jù)量

后端接收到這兩個(gè)參數(shù)后,計(jì)算出每次請求的數(shù)據(jù)的在數(shù)據(jù)庫中的起始位置
eg:

//$offset $count 對應(yīng)前端傳過來的值
$a = ($offset-1)*$count;
// 后端查數(shù)據(jù)庫的時(shí)候,加上limit $a,$count
2018年7月26日 12:44
編輯回答
初念

這對方接口設(shè)計(jì)就有問題,難道沒有頁碼或者時(shí)間這種參數(shù)嗎?

2018年7月24日 22:48
編輯回答
萢萢糖

都超過一千條了后端還不做分頁?我這里超過20條后端就要做分頁了

2017年5月19日 00:02